I played in an Ultimate tournament yesterday and thought it would be great to take some team video and create a highlights/bloopers reel. However, this requires some editing on the computer and I was filming with my Sony HDR-SR10, which records in full HD 1080 AVCHD. This results in an bunch of .MTS files on your computer, and though some media players will play these files, they video quality is chopping and full of weird horizontal lines.
Clearly these video files must be converted to a more workable format....
I've tried many different scripts and packages, including m2tstoavi and handbrake without success. After some fiddling, it seems that the best option is a customised ffmpeg. Here's how it worked for me:
1. Download the Necessary Packages
sudo apt-get install build-essential libxvidcore4-dev libfaad-dev libfaac-dev libmp3lame-dev subversion
2. Grab Most Recent FFMPEG
svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
3. Compile the Source Code
cd ffmpeg
./configure --enable-gpl --enable-libmp3lame --enable-libxvid --enable-libfaac --enable-nonfree
make
sudo make install
This will probably take a little while...
4. Configure FFMPEG to Your Camera
Run ffmpeg and pass it one of your .MTS video files to the program. This will allow you to see some basic info about the video/audio formats your camera uses. Then, tailor ffmpeg to your camera (assuming you only have one of these super-hd video cameras). I'm using a sample video called
00451.MTS.
ffmpeg -i 00451.MTS
The important output will be near the bottom:
Input #0, mpegts, from '00451.MTS':
Duration: 00:00:24.54, start: 1.000033, bitrate: 5510 kb/s
Program 1
Stream #0.0[0x1011]: Video: h264, yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 59.96 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
Stream #0.2[0x1200]: Subtitle: pgssub
There are 3 streams: video, audio, and subtitle. I'm not sure what subtitle is, but let's ignore it for now. Video is in 1440x1080 resolution, pixel aspect ratio is 4:3, display aspect ratio is 16:9, and 59.96 frames per second, at 5510 kb/s. Audio is in ac3 at 448 kb/s.
5. Use FFMPEG
Now ffmpeg can be used to convert video. If you only have one or two files to convert, simply navigate to the proper directory, and enter the following comand in your terminal:
ffmpeg -i InputFile.MTS -vcodec libxvid -b 18000k -acodec libmp3lame -ac 2 -ab 320k -deinterlace -s 1440x1080 OutputFile.AVI
But if you have many files you may want to use a batch conversion script. Create a gedit file in your favourite scripts directory... /usr/share/myscripts will do fine. Save the following text file to the directory:
#!/bin/bash
for a in `ls *.MTS` ; do ffmpeg -i $a -vcodec libxvid -b 18000k -acodec libmp3lame -ac 2 -ab 320k -deinterlace -s 1440x1080 `echo "$a" | cut -d'.' -f1`.avi ; done
exit
Call it
ConvertMTS or something. When run, this script will convert any .MTS files in the current directory to .AVI and save the new files in the same directory. To use the script, navigate to your MTS folder in terminal:
bash /usr/share/myscripts/ConvertMTS
.... Sit back and wait :-)