The Linux AVCHD (.mts) Playback HOWTO with MPlayer

Alan fixed the Segmentation Fault issue for CoreAVC version, so Matroska files can be played back again. See this thread at his project site: #62

Unfortunately AVCHD has still issues. So CoreAVC version still doesn’t work regarding playback of AVCHD footage from my Canon HF100. I think Panasonic HDC-SD1/5/9/100 is also affected.
If you have a at least 2.7GHz processor, you can use the latest mplayer from their repository.
Download it:

svn checkout svn:// mplayer

compile and install it:

cd mplayer
make && make install

Canon HF10/100

Play back footage from Canon’s HF100 (PAL) like this:

/usr/local/bin/mplayer -fps 50 -ao sdl -vo xv -lavdopts threads=3:fast:skiploopfilter=all your-canon-hf100-footage-here.mts

If you are using a NTSC version, you’ve got to use -fps 60 or if you recorded progressively, try -fps 24000/1001. I didn’t try this [FIXME], it’s possible it has no effect, since according to CoreCodec’s forum Canon’s HF100(FIXME link) records progressive (non-interlaced) content also in a interlaced container. Just try a few values.

Panasonic HDC-SD1/5/9/100

Play back footage from Panasonic HDC-SD1/5/9/100 like this:

/usr/local/bin/mplayer -demuxer lavf -ao sdl -vo xv -lavdopts threads=3:fast:skiploopfilter=all your-panasonic-hdc-sd100-footage-here.mts

Jerky Playback

If you encounter jitter, jerky playback, try to add a deinterlacing option, such as:

/usr/local/bin/mplayer -demuxer lavf -ao sdl -vo xv -lavdopts threads=3:fast:skiploopfilter=all your-camcorder-footage-here.mts -vf pp=fd


The threads parameter should be set to something like number_of_CPU_cores + 1 or 2. But don’t expect the current mplayer to utilize all cores in parallel a lot, regarding AVCHD content. It makes more sense playing back Matroska (.mkv) content, or generally speaking: content being encoded with x264.

Sound Issues

The -ao sdl option is useful, if you suffer from a broken sound output. Use sdl as audio output option if your sound start to clatter in a high way.

There’s also a sync problem sometimes. Unfortunately I haven’t found a working solution yet. If you also had an audio sync problem, and you’ve managed to solve it, please let me know. I’ve been looking thru the whole internet 😉 twice, but couldn’t find a working solution for me.


The -vo xv is the only video output option that can be used. Having attached two monitors and running a nvidia in a TwinView mode can cause excessive tearing if you didn’t choose the right monitor to synchronize with (see nvidia-settings -> X Video tab ). This and even the Sync to VBlank switch could even be ignored by the nvidia driver. The only solution I found so far, is simply to detach the monitor you don’t need (Pull the plug). OpenGL obeys to the nvidia settings, but the output is dead-slow. So OpenGL (-vo gl or gl2) is a no-go option.

6 thoughts on “The Linux AVCHD (.mts) Playback HOWTO with MPlayer

  1. Thanks for looking into this so quickly. Does anyone have a compiled version I can download for x86_64 systems? I am unable to compile it on mine. Thanks!

  2. Hey this worked perfectly. I can view my h.264 1920×1080 m2ts/mts vids in fullscreen. The video skips every other frame but it’s good to see Nvidia decided to be nice and provide Purevideo support (beta) for linux.

    Skipping the video worked for me only sometimes, but most of the time it halted the system and I had to reboot. This would be fixed in the final releases.

    Can’t wait for the final releases. 😀

  3. To solve the audio sync problem, I just grow the fps value to 60.

    mplayer -fps 60 -ao sdl -vo xv -lavdopts threads=3:fast:skiploopfilter=all your-canon-hf100-footage-here.mts

    Camcorder:Canon HF100
    CPU: Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz
    Graphic: ATI Technologies Inc RV610 video device [Radeon HD 2400 PRO]

Comments are closed.