ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

DonationCoder.com Software > Post New Requests Here

IDEA: Convert sequence of images to video (with ffmpeg?)

<< < (2/3) > >>

4wd:
Here's a program that may do what you want:

AnotherGUI - AnotherGUI is a graphical front-end for audio/video command line converter (such as ffmpeg/ffmbc).

IDEA: Convert sequence of images to video (with ffmpeg?)

Download the preset I attached to this post and extract it somewhere, (it'll create a 10fps video that's 1280x720 and displays each image for 1 second).

Download v2.0.2beta and the appropriate x86/x64 version of SQLite via the links on the page.

Extract them into a directory, add the executables from the ffmpeg archive, (ffmpeg, ffprobe, ffplay).

When you first run AnotherGUI, answer No to the following:



Click the Edit button:

IDEA: Convert sequence of images to video (with ffmpeg?)

Then click the Import button, select the file [email protected] (extracted from the attachment), hit Open, and then hit OK:

IDEA: Convert sequence of images to video (with ffmpeg?)

Exit the program, then run it again, (the preset won't show up until the next time it's run):

IDEA: Convert sequence of images to video (with ffmpeg?)

Rename your image files so that they're sequentially numbered, then you can either drag'n'drop the folder they're in on the Add an image sequence button or click the button and select one of the images, the appropriate job will be created:

IDEA: Convert sequence of images to video (with ffmpeg?)

It will output to the source folder by default, or you can change it by hitting the button - otherwise hit the Go button.

The last command run is displayed and you can save it as a .bat file to run again if necessary:

IDEA: Convert sequence of images to video (with ffmpeg?)

You can edit the preset if you want a different frame rate or size.

Deozaan:
Thanks! I'll look into this.

Download the preset I attached to this post and extract it somewhere, (it'll create a 10fps video that's 1280x720 and displays each image for 1 second).-4wd (January 14, 2015, 05:21 AM)
--- End quote ---
Wouldn't that be a 1fps video if it only shows one frame (image) per second?  :huh:

4wd:
Thanks! I'll look into this.

Download the preset I attached to this post and extract it somewhere, (it'll create a 10fps video that's 1280x720 and displays each image for 1 second).-4wd (January 14, 2015, 05:21 AM)
--- End quote ---
Wouldn't that be a 1fps video if it only shows one frame (image) per second?  :huh:
-Deozaan (January 14, 2015, 02:11 PM)
--- End quote ---

No, video frame rate and image persistence are two different things.

Some video players, (I'm referring to software not a hardware media player, they're probably even more restricted), can't handle very low video frame rates, (I saw mentioned somewhere that VLC doesn't handle below around 10fps - I know MPC-BE doesn't like low rates).

To get an image to display for x seconds, ffmpeg creates x * fps copies of the image to display, so for the above preset: 1 (second) x 10 (fps) = 10 copies

10 fps means each frame is displayed for 100ms, so each of the 10 copies of the image is displayed for 100ms - appended together gives you each image being displayed in the video for 1 second.

Here's a page regarding ffmpeg, frame rates, and image sequences: Create a video slideshow from images

I've also added the -pix_fmt yuv420p mentioned on that page, (ensures maximum compatibility in final video with players/online sites).

In your original command:

ffmpeg -r [framerate] -i [images] -s [resolution] -vcodec libx264 [videofilename].mp4
--- End quote ---

Because you haven't specified a frame rate for the output video, the input image frame rate would be used - if this is too low, the video won't display correctly (ie. some images may appear for longer - I was getting the first image being displayed for 5 seconds and the following for 1 second) - if it's too high, the images might just flash up on screen or possibly they'll be dropped altogether from the final video.

BTW, if the folder you drop onto the interface button contains more than one image sequence, in theory it should create a job for each ... but I haven't tested that.

If you let me know what fps/dimensions/codecs you're interested in, I'll try knocking up some presets so you can look at them - specify image persistence in seconds and video output frame rate.

EDIT: I incorrectly made the description on the preset, (shows up under preset), as 1fps - forgot to change it after I'd finished playing around.  I've corrected and re-attached to the above post.


Addendum: I've attached some more presets you can import, (remember to restart program after importing), it should give you an idea of what to do:

Output video presets, (all MPEG4-AVC, MP4 format):
720x400, 2 images/s, 24fps  (2 images every second)
720x400, 5 images/s, 30fps  (5 images every second)
1280x720, 1image/s, 10fps  (1 image every second)
1280x720, 1image/s, 24fps  (1 image every second)
1280x720, 1image/5s, 24fps  (1 image every 5 seconds)
1280x720, 2images/s, 24fps  (2 images every second)
1980x1080, 2images/s, 24fps  (2 images every second)


--- Code: Text ---<?xml version="1.0" encoding="utf-16"?><AnotherGUI_Presets_ver.03>        <Preset>                <UUID>66a5159b-4405-499f-9b56-0439ae54978a</UUID>                <Executable>ffmpeg.exe</Executable>                <Name>Image sequence to video 1280x720, 1ips, 10fps</Name>                <Description><![CDATA[Convert sequence of images to video (1280x720, 1 image/s, 10fps)]]></Description>                <Category><![CDATA[IMAGES 1280]]></Category>                <Arguments><![CDATA[-r 1-i "<FullSourceFileName>"-s 1280x720-r 10-vcodec libx264-pix_fmt yuv420p"<OutputPath><OutputFileName>.mp4"]]></Arguments>                <Arguments2><![CDATA[]]></Arguments2>                <Postprocess><![CDATA[]]></Postprocess>        </Preset>        <Preset>                <UUID>808b659a-5bcf-4d87-8e17-789e995e167e</UUID>                <Executable>ffmpeg.exe</Executable>                <Name>Image sequence to video 1280x720, 1ips, 24fps</Name>                <Description><![CDATA[Convert sequence of images to video (1280x720, 1 image/s, 24fps)]]></Description>                <Category><![CDATA[IMAGES 1280]]></Category>                <Arguments><![CDATA[-r 1-i "<FullSourceFileName>"-s 1280x720-r 24-vcodec libx264-pix_fmt yuv420p"<OutputPath><OutputFileName>.mp4"]]></Arguments>                <Arguments2><![CDATA[]]></Arguments2>                <Postprocess><![CDATA[]]></Postprocess>        </Preset>        <Preset>                <UUID>90f8f618-766b-4a16-91e9-04eb67e7ba45</UUID>                <Executable>ffmpeg.exe</Executable>                <Name>Image sequence to video 1280x720, 2ips, 24fps</Name>                <Description><![CDATA[Convert sequence of images to video (1280x720, 2 image/s, 24fps)]]></Description>                <Category><![CDATA[IMAGES 1280]]></Category>                <Arguments><![CDATA[-r 2/1-i "<FullSourceFileName>"-s 1280x720-r 24-vcodec libx264-pix_fmt yuv420p"<OutputPath><OutputFileName>.mp4"]]></Arguments>                <Arguments2><![CDATA[]]></Arguments2>                <Postprocess><![CDATA[]]></Postprocess>        </Preset>        <Preset>                <UUID>d1bf7e3a-3ca2-4b73-b12a-300c4fe90393</UUID>                <Executable>ffmpeg.exe</Executable>                <Name>Image sequence to video 1280x720, 1i/5s, 24fps</Name>                <Description><![CDATA[Convert sequence of images to video (1280x720, 1 image/5s, 24fps)]]></Description>                <Category><![CDATA[IMAGES 1280]]></Category>                <Arguments><![CDATA[-r 1/5-i "<FullSourceFileName>"-s 1280x720-r 24-vcodec libx264-pix_fmt yuv420p"<OutputPath><OutputFileName>.mp4"]]></Arguments>                <Arguments2><![CDATA[]]></Arguments2>                <Postprocess><![CDATA[]]></Postprocess>        </Preset>        <Preset>                <UUID>5107fcff-6305-4317-9dd9-3863f99c599f</UUID>                <Executable>ffmpeg.exe</Executable>                <Name>Image sequence to video 1920x1080, 2ips, 24fps</Name>                <Description><![CDATA[Convert sequence of images to video (1920x1080, 2 image/s, 24fps)]]></Description>                <Category><![CDATA[IMAGES 1920]]></Category>                <Arguments><![CDATA[-r 2/1-i "<FullSourceFileName>"-s 1920x1080-r 24-vcodec libx264-pix_fmt yuv420p"<OutputPath><OutputFileName>.mp4"]]></Arguments>                <Arguments2><![CDATA[]]></Arguments2>                <Postprocess><![CDATA[]]></Postprocess>        </Preset>        <Preset>                <UUID>1cf678cb-07ce-42c1-bca3-bade905d49a8</UUID>                <Executable>ffmpeg.exe</Executable>                <Name>Image sequence to video 720x400, 2ips, 24fps</Name>                <Description><![CDATA[Convert sequence of images to video (720x400, 2 image/s, 24fps)]]></Description>                <Category><![CDATA[IMAGES 720]]></Category>                <Arguments><![CDATA[-r 2/1-i "<FullSourceFileName>"-s 720x400-r 24-vcodec libx264-pix_fmt yuv420p"<OutputPath><OutputFileName>.mp4"]]></Arguments>                <Arguments2><![CDATA[]]></Arguments2>                <Postprocess><![CDATA[]]></Postprocess>        </Preset>        <Preset>                <UUID>91fe525a-abdc-4858-8e51-41e61d848754</UUID>                <Executable>ffmpeg.exe</Executable>                <Name>Image sequence to video 720x400, 5ips, 30fps</Name>                <Description><![CDATA[Convert sequence of images to video (720x400, 5 image/s, 30fps)]]></Description>                <Category><![CDATA[IMAGES 720]]></Category>                <Arguments><![CDATA[-r 5/1-i "<FullSourceFileName>"-s 720x400-r 30-vcodec libx264-pix_fmt yuv420p"<OutputPath><OutputFileName>.mp4"]]></Arguments>                <Arguments2><![CDATA[]]></Arguments2>                <Postprocess><![CDATA[]]></Postprocess>        </Preset></AnotherGUI_Presets_ver.03>
Addendum2: Forgot to mention, if it can't find ffmpeg.exe then go Preferences and click the Reset executable paths button, you can then select the paths to various executables, (AnotherGUI can handle more than just ffmpeg), or click the Cancel button in the dialog if you don't have that executable.

Deozaan:
If you let me know what fps/dimensions/codecs you're interested in, I'll try knocking up some presets so you can look at them - specify image persistence in seconds and video output frame rate.-4wd (January 14, 2015, 06:27 PM)
--- End quote ---

I'm interested in 60fps input/output. One image for each frame, each frame taking up 1/60 of a second to display. 60fps for nice, smooth visuals. Also because then I can just use 1 screenshot per second and it converts nicely to each second of video representing 1 minute of realtime for my timelapses.

I tend to stick to 2560x1440 (my monitor's native resolution) or 1920x1080 (1080p). But I also have a 1920x1200 monitor I may want to take snapshots of and convert to video.

I pretty much only use YouTube to upload, and they have some recommended codecs/bitrates here.

4wd:
Try these, you might run into some problems with such a high input frame rate so check the output.

Use the preset under IMAGES Native Res as this won't do any scaling of the images and might avoid any frame drops, it'll pay to source the images from an SSD, RAM drive, or something similarly as fast.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version