FFmpeg does not love you

Yesterday, one of the researchers I work with asked me about transcoding some video for ELAN. I'd setup their ELAN workflow a few years ago, but since then a few staff had moved around, ELAN had seen a few releases, and they'd upgraded their camcorders. This meant the old script I'd written (cough cough batch file with YOURFILEHERE scrawled all over it cough) had been lost, mangled, or was otherwise indisposed. No big deal, how hard could it be to concatenate a few MTS's and then transcode to something ELAN would like?

I'll spare you the details, but this is how I spent my 4 o'clock hour on Friday.

ffmpeg -i 'concat:c:\foo\barA.mts|c:\foo\barB.mts" -c copy barAB.mts

or, if you want to do it in one step...

ffmpeg -i "concat:c:\foo\barA.mts|c:\foo\barB.mts" -c:v msmpeg4 -c:a libmp3lame barAB.avi

Probably, second one is from memory, and you'll want to do some bit rate and resolution adjusting. We annotate 720p proxies (great for turn taking, head nods, posture analysis) when we don't need high detail (eye blinks, gears turning in subjects' heads, AU markup) but do what works for you.

Now, if you're looking at that and going, 'Wait, why are you using the wrong concatenation setup?" that's what took so long. All of the video is hosted remotely, and that server wasn't playing nice with FFmpeg. Probably permissions between Windows and the Linux server. Throw in some issues with escaping the paths (no quotes! Windows build handles that for you.) On top of that, the researcher wanted a single line, no external files, and definitely no Python dependencies solution for her interns. On top of that, ELAN leans on Quicktime and WMP for video playback, so good luck picking a codec. So is it pretty? Oh no. Does it work? Mostly. That's why I love FFmpeg. When it works, it's great, and when it doesn't, you'll probably learn something.