- Research Overview
- MPhil Information
- Wireless Comms
- Bat System
- Broadband Phone
- Sentient Vehicles
- Task Assignment
- Computing for the Future of the Planet
- Active Floor
- Open-Source CSK Energy
DTG Local Pages
- Cambridge Weather
- Contact Details
Compiling & Using Transcode for Time-Lapse MPEGs
Author: David Cottingham
The following gives terse details of how to install and get Transcode running. Bear in mind that many of the below, in particular ffmpeg and transcode, will need dependencies installing. For ffmpeg you will need to download several source tarballs and install them, the URLs are given by the configure script when it tells you they are missing. For Transcode, the dependencies I list in the configure command can all be satisfied using SuSe?'s YaST.
- Download, compile and install Lame MP3.
- Download, compile, and install ffmpeg, using the following options in the configure script:
./configure --enable-shared --enable-mp3lameIf you do not give the --enable-shared switch, transcode will not be able to find libavcodec, and will fail to compile!
- Download, compile, and install Transcode, using:
./configure --enable-mjpegtools --enable-imagemagick --enable-libjpeg
- Get your JPEG files (all the same pixel sizes) into one directory, and run
ls -1 *.jpg > list.txt
to generate a list of JPEGs for input to transcode.
- Use the following transcode command line to generate an MPEG4 video:
transcode -x imlist,null -y ffmpeg,null -F mpeg4 --use_rgb -i list.txt -o test.ffmpeg -w 8000 --import_asr 1 -g 640x480 -z -k
The explanation of each option is as follows:
- -x specifies the import module to be used, i.e. imagelist for the video stream, and null for the audio stream.
- -y specifies the output module, in this case ffmpeg for video, and null for audio
- -F is a switch for ffmpeg, to signify the video codec to be used (MPEG4 in this case)
- --use_rgb is the colour scheme to use, and is required (otherwise transcode just refuses to work!)
- -i specifies the input file, in this case list.txt which contains a list of JPEGs to be encoded
- -o specifies the output file, in this case test.ffmpeg
- -w specifies the output bit rate, 8000 being nearly the highest (so I read, haven't tried anything else).
- --import_asr specifies that the aspect ratio of the imported images is 1:1 (though mine weren't...)
- -g is very important, and is the pixel dimensions of all your images, in my case 640 by 480
- -z fixes the problem where the end result is upside-down
- -k fixes the problem where transcode's interpretation of the RGB standard is different from other programmes' (without this switch the colours are a bit odd).
I found this page on using the Rawlist input module a good starting point, though it is more simple than the above as it uses raw images without the JPEG header (so you'll need a Perl script).