6

I’m new at video editing… and hoping someone can direct me to the best software for my needs.

Running on windows OS. I need to build a video from frames in tga format, convert them in different formats like .mov or .avi and sometimes with different compressions types (none, animation, jpeg).

I also need to be able to set the frame rate and add an audio track.

The software I’m looking for should be able to batch process the jobs as I have many frames in different scenes/folders.

From the reading I’ve been doing I would say virtualdub is the way to go but would like to know what other alternatives are out there.

Hoping I can gain I little more insight here.

Thanks.

3

Here are some options:

  • VirtualDub can join still images to videos. Just select the first image, choose a compression, and save the video. That's some mouse clicks per folder, but no automatic batch procession.
  • FFmpeg can do the same, but you need to write a command line for each folder, which can then be automatically batch processed.
3

As for FFmpeg see How do I encode single pictures into movies? Additional info:

  • Use a recent ffmpeg build. Development is very active and online documentation corresponds to recent FFmpeg code. Windows users can acquire it from Zeranoe FFmpeg builds.

  • Declare your frame rate (-framerate option) as an input option. The output will then use this same frame rate, or you can declare both an input and output frame rate with -r; for example if you need to read the input frames at a certain fps and need a standard output rate. Note that frames will simply be dropped or duplicated for non-matching input and output frame rates. Default is -framerate 25 if you do omit this option.

  • Additional streams (audio, video, subtitle, etc) are easy to add, and a complete command may look like:

    ffmpeg -framerate 24 -pattern_type glob -i 'frames*.png' -i audio.aac -c:v libx264 -c:a copy -preset slower -crf 23 -movflags +faststart output.mp4
    
  • See Using ffmpeg with decimal wildcard for additional image to video examples, and FFmpeg Wiki: H.264 Encoding Guide and FFmpeg Wiki: AAC Encoding Guide to get a good quality output.

  • Probably good to use much higher than default quality for temp files you're going to feed to a NLE before making a final encode to publish. – Peter Cordes Jan 15 '15 at 10:25
  • @PeterCordes Good point, but I didn't see a reference to a NLE in the question, but if that's what the file is going to be used in then I recommend a compressed lossless format such as UT Video. ffmpeg can natively decode and encode it, and Premiere can after UT Video is installed. – llogan Jan 15 '15 at 17:28
  • How's support for lossless h.264 in the non-ffmpeg world of commercial software? I'm working on a question+answer about good lossless formats for this job, with some benchmark tests. So far lossless x264 and utvideo are the two good choices, as I suggested in my answer to this question. – Peter Cordes Jan 15 '15 at 18:29
  • @PeterCordes I'm not sure about the current situation. I haven't tested it in a NLE for ages and will be unable to do so for at least 10 days because of travel. – llogan Jan 15 '15 at 18:48
1

In the special case of jpeg input, you can do it losslessly by just muxing the data into an MJPEG stream, saving huge amounts of CPU time.

How to losslessly encode a jpg image sequence to a video in ffmpeg?

You're probably doing some kind of video editting on the results, so don't skimp on the quality of the files you make. Prob. best to use lossless x264 (ffmpeg -i input -c:v libx264rgb -preset ultrafast -qp 0), or utvideo, for your non-jpeg inputs.

0

To expand upon Fred42vid's answer (I won't go into VirtualDub since 1. I don't know it and 2. it's a GUI tool, and so should be relatively easy to use): if the images are named image001.jpg, image002.jpg, etc, you can use ffmpeg like so:

ffmpeg -f image2 -r 16 -i image%03d.jpg -c:v libx264 output.mp4

Control the number of images per second by changing -r 16: as it is, that will give you 16 images per second (film uses 24 fps, PAL video uses 25, NTSC uses 29.97).

%03dmeans that ffmpeg will look for incremental images, starting at 001 and going up to 999. %02d would get you 01-99.

If you don't have the files named in this way, you can use the following:

ffmpeg -f image2 -pattern_type glob -r 16 -i '*.jpg' -c:v libx264 output.mp4

This will input the jpg files in alphanumeric order.

For information about encoding the video with x264, see this guide.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.