I just tried playing back a 1080p AVCHD video file recorded at 60 FPS with my Sony DSLR on my Ubuntu 12.04 workstation, and to my surprise MPlayer was not able to play the video smoothly. I copied the file to a local hard drive.
The video plays slower than it should and the A-V desync continues growing steadily (about 1 second of desync per 10 seconds of playback). One of the 8 CPU threads shoots up to 100%.
I was wondering if this is to be expected on my hardware. Its a little hard to believe, considering that my T60 laptop plays the video just fine, so I suspect software issues.
Workstation specs:
- CPU: Intel Quad Core i7-920 @2.67GHz
- GPU: Nvidia GeForce 9600 GSO 512
- RAM: 8Gb
- Compiz if functioning smoothly, although I have turned it off for this testing (no improvement in video playback)
- The system is generally lightning fast and responsive.
- Playing an MP4 with h264 1080p stream at 30 FPS works fine.
root@boss:~# glxinfo | grep direct direct rendering: Yes root@boss:~# glxinfo | grep vendor server glx vendor string: NVIDIA Corporation client glx vendor string: NVIDIA Corporation OpenGL vendor string: NVIDIA Corporation
Mplayer output:
valprj@boss:~$ mplayer 00006.MTS MPlayer svn r34540 (Ubuntu), built with gcc-4.6 (C) 2000-2012 MPlayer Team mplayer: could not connect to socket mplayer: No such file or directory Failed to open LIRC support. You will not be able to use your remote control. Playing 00006.MTS. libavformat version 53.21.1 (external) Mismatching header version 53.19.0 TS file format detected. VIDEO H264(pid=4113) AUDIO A52(pid=4352) SUB Teletext(pid=4608) PROGRAM N. 1 FPS seems to be: 59.940060 Load subtitles in ./ ========================================================================== Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family libavcodec version 53.35.0 (external) Mismatching header version 53.32.2 Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264) ========================================================================== ========================================================================== Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders AUDIO: 48000 Hz, 2 ch, s16le, 256.0 kbit/16.67% (ratio: 32000->192000) Selected audio codec: [ffac3] afm: ffmpeg (FFmpeg AC-3) ========================================================================== AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample) Starting playback... Unsupported PixelFormat 61 Unsupported PixelFormat 53 Unsupported PixelFormat 81 Movie-Aspect is 1.78:1 - prescaling to correct movie aspect. VO: [vdpau] 1920x1080 => 1920x1080 Planar YV12 A: 6.6 V: 6.1 A-V: 0.496 ct: -0.017 453/453 96% 10% 0.6% 221 0 ************************************************ **** Your system is too SLOW to play this! **** ************************************************ Possible reasons, problems, workarounds: - Most common: broken/buggy _audio_ driver - Try -ao sdl or use the OSS emulation of ALSA. - Experiment with different values for -autosync, 30 is a good start. - Slow video output - Try a different -vo driver (-vo help for a list) or try -framedrop! - Slow CPU - Don't try to play a big DVD/DivX on a slow CPU! Try some of the lavdopts, e.g. -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=all. - Broken file - Try various combinations of -nobps -ni -forceidx -mc 0. - Slow media (NFS/SMB mounts, DVD, VCD etc) - Try -cache 8192. - Are you using -cache to play a non-interleaved AVI file? - Try -nocache. Read DOCS/HTML/en/video.html for tuning/speedup tips. If none of this helps you, read DOCS/HTML/en/bugreports.html. A: 7.8 V: 7.2 A-V: 0.602 ct: -0.017 520/520 97% 10% 0.6% 286 0 [h264 @ 0x7fe0a0468380]concealing 136 DC, 136 AC, 136 MV errors A: 17.1 V: 15.6 A-V: 1.495 ct: -0.017 1022/1022 97% 9% 0.6% 779 0 Exiting... (Quit)
Things I tried
Playing with
-vc ffh264vdpau
helped a bit. The desync ratio became 1 second of desync per 34 seconds of playback, and the video speed is almost right. The CPU usage went down significantly (20% on highest cpu thread). Yet I still get the:Your system is too SLOW to play this!
message from MPlayer.
Playing with
-lavdopts skiploopfilter=all
made the video play properly. The CPU hovers at around 93% and A-V sync hovers around 0.263s
Question
So my question is this - would you say it's reasonable for mplayer to have this much trouble playing back that video on my hardware, or do you figure that there is a software problem here? Maybe the nvidia driver?
Any ideas would be appreciated!