Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
6th February 2016, 04:16 | #1 | Link |
Registered User
Join Date: Dec 2011
Posts: 7
|
Creating video from still image with MP4Box
I have a still png image and 40min long m4a audio.
Is is it possible to mux it so it will play as normal 40min long video? This is for the purpose of later uploading to youtube. |
6th February 2016, 06:06 | #2 | Link |
Registered User
Join Date: Dec 2008
Posts: 589
|
You can use AviSynth to create a small script that will produce your video.
Once you install AviSynth you can open Notepad and after writing this, save the document with the extension .avs (save as... choose all file types, type at filename yourname.avs ) Code:
video = ImageReader("c:\path\to\your_image.jpg", fps=25, start=1, end=99999) video start and end tell you how many frames to generate , so for example if your audio is 40 minutes long exactly, then you want 40 minutes x 60 seconds x 25 frames per second so you want to use end=60000 You should resize the image beforehand to a decent size, like 1920x1080 or 1280x720 It's ok for your video to be longer than audio by a few seconds, youtube won't mind. Once you have this .AVS script, you can load it in Virtualdub or in MeGUI and compress the video using XVID or x264 , or you can use x264 directly using a command like this : x264.exe --tune stillimage --output "c:\path\to\output_file.mkv" "c:\path\to\avisynth_script.avs" x264 is smart enough to recognize the still image so your video will compress super fast and will only use less than 1MB for each minute of video (it can be done to use even less but it's pointless for this exercise). Now you can combine your generated video with your audio track, simply get MKVToolnix, open it, drag the two files in the gui and click the merge button and you'll get a MKV file with both video and audio, ready to be uploaded on Youtube. As a tip, you can modify the script above to use more than one picture, for example here's the same script for two pictures : Code:
sequence1 = ImageReader("c:\path\to\your_first_image.jpg", fps=25, start=1, end=10000) sequence2 = ImageReader("c:\path\to\your_second_image.jpg", fps=25, start=1, end=10000) video = sequence1+sequence2 video |
6th February 2016, 11:02 | #3 | Link |
Registered User
Join Date: Dec 2011
Posts: 7
|
Thanks a lot.
I ran into problem with non-compliant resolution (resolution is not compliant with colorspace i420) using x264 encoder. Some way to automatically resize to mod2 resolution with width being 1280 and height kept within original aspect ratio? I am looking for ways how to automate this process as much as possible. By the way, how long this should take? I have i5 and ETA on 64600frames video was about 1 hour which does not seem right. |
6th February 2016, 11:16 | #4 | Link |
Registered User
Join Date: Dec 2008
Posts: 589
|
Yes, both width and height must be multiples of 2, but ideally they should be multiple of 8.
as for preparing pictures... see Irfanview ... very good free image viewer. But also allows you to crop pictures or add borders. Image menu > Resize/Resample Image menu > Change Canvas Size or Image menu > Add border/frame There's also a very comprehensive batch conversion tool in Irfanview (File > Batch conversion/rename) , which would allow you to resize all pictures you have to have the width or height to a particular value and keep the proportions of each picture, and also set the canvas size to a particular size, all in one go. Hit the menu entry and then check the box "Use advanced options" and then hit the Advanced button, you'll see everything you'd need there. On my computer (fx8320 , the video was encoded at around 70fps, so about 3x real time). As a sidenote, once you have more than a few pictures, maybe it's time to look into video editing tools ps. add --preset ultrafast to the x264 command line and it will run like crazy ... x264.exe --tune stillimage --preset ultrafast --output "c:\path\to\output_file.mkv" "c:\path\to\avisynth_script.avs" It sacrifices thoroughness in trying to find the best way to compress each frame in the video in favor of speed, but in your case since we're dealing with the same picture over and over, the quality will still be quite good. On my pc, the speed goes up to around 205fps on average. Last edited by mariush; 6th February 2016 at 11:26. |
Tags |
mp4box, youtube |
Thread Tools | Search this Thread |
Display Modes | |
|
|