Take the 2-minute tour ×
Video Production Stack Exchange is a question and answer site for engineers, producers, editors, and enthusiasts spanning the fields of video, and media creation. It's 100% free, no registration required.

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.

share|improve this question

4 Answers 4

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.
share|improve this answer

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.

share|improve this answer
    
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 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. –  LordNeckbeard Jan 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 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. –  LordNeckbeard Jan 15 at 18:48

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.

share|improve this answer

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.

ffmpeg: how to losslessly encode many jpg images to a video?

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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