Mplayer
Материал из LinuxMCE Wiki.
Mplayer используется в LinuxMCE для проигрывания Blu-ray. Для того, чтобы система выбрала именно его, а не Xine, необходимо, чтобы расширение файла было .m2ts и его тип в медиа базе - LinuxMCE Blu-ray, а не LinuxMCE Video. В 0710 только с использованием mplayer можно проигрывать HD видео в формате MKV.
Параметры запуска mplayer
Судя по информации ps mplayer запускается в LinuxMCE со следующими параметрами при выбранном аппаратном ускорении VDPAU:
mplayer -slave -idle -msglevel all=4 -noborder -fixed-vo -fs -vo vdpau,xv -vc ffh264vdpau,ffmpeg12vdpau,ffvc1vdpau,ffwmv3vdpau -ao alsa:device=plug=dmix -ac a52, -lavdopts fast:threads=2 /usr/pluto/share/black.mpeg
где:
- -slave - переключает mplayer в slave mode для использования в качестве бэкенда для других программ, в частности LinuxMCE;
- -idle - используется совместно со slave mode, если нечего играть, то не выключается, а ждет команды от мастер-системы;
- -msglevel all=4 - устанавливает уровень информативности сообщений. В данном случае - informational messages;
- -noborder - убирает стандартное оформление окна;
- -fixed-vo - устанавливает режим, в котором выбранные видео файлы проигрываются в одном окне, а не каждый раз в новом. NOTE: в документации написано, что этот режим совместим с gl, gl2, mga, svga, x11, xmga, xv, xvidix and dfbmga. Про vdpau - ни слова;
- -fs - полноэкранный режим;
- -vo vdpau,xv - драйвера для вывода видео. В данном случае используется аппаратное ускорение vdpau и XVideo расширение XFree86 4.x;
- -vc ffh264vdpau,ffmpeg12vdpau,ffvc1vdpau,ffwmv3vdpau - список используемых видео кодеков;
- -ao alsa:device=plug=dmix - драйвера для вывода аудио. В данном случае, ALSA;
- -ac a52, - список используемых аудио кодеков;
- -lavdopts fast:threads=2 - список параметров для libavcodec. В данном случае используется параметр fast (MPEG-2, MPEG-4 и H.264), который включает оптимизацию, могущую как ускорить декодирование видео, так и вызвать проблемы при его воспроизведении, так как эта оптимизация не стандартизована. Примеры: simpler dequantization, simpler motion compensation, assuming use of the default quantization matrix, assuming YUV 4:2:0 and skipping a few checks to detect damaged bitstreams. Так же используется параметр threads, который определяет количество потоков для декодирования видео. В нашем случае, их будет два.
Проблемы с проигрыванием m2ts с vdpau
При проигрывании .m2ts файла (то же самое справедливо и для .mkv) mplayer в 0810 с акселерацией vdpau, нет ни картинки, ни звука. В логе можно увидеть следующие сообщения:
05 04/23/10 0:46:49.557 MPlayer_Player::Log [EngineOutputReader] Playback preinit for file: /home/public/data/videos/Windows Share-Volume_1 [39]/Forrest Gump/Forrest.Gump.HDTV.720p.x264.AC3.Rus.m2ts <0xb60fab90> 05 04/23/10 0:46:49.717 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 1: video (V_MPEG4/ISO/AVC) "H.264", -vid 0| <0xb60fab90> 05 04/23/10 0:46:49.718 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 2: subtitles (S_TEXT/UTF8), -sid 0, -slang cze| <0xb60fab90> 05 04/23/10 0:46:49.718 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 3: subtitles (S_TEXT/UTF8), -sid 1, -slang scr| <0xb60fab90> 05 04/23/10 0:46:49.718 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 4: subtitles (S_TEXT/UTF8), -sid 2, -slang slv| <0xb60fab90> 05 04/23/10 0:46:49.718 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 5: subtitles (S_TEXT/UTF8), -sid 3, -slang swe| <0xb60fab90> 05 04/23/10 0:46:49.718 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 6: subtitles (S_TEXT/UTF8), -sid 4, -slang dan| <0xb60fab90> 05 04/23/10 0:46:49.718 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 7: subtitles (S_TEXT/UTF8), -sid 5, -slang nor| <0xb60fab90> 05 04/23/10 0:46:49.718 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 8: subtitles (S_TEXT/UTF8), -sid 6, -slang fin| <0xb60fab90> 05 04/23/10 0:46:49.719 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 9: subtitles (S_TEXT/UTF8), -sid 7, -slang fre| <0xb60fab90> 05 04/23/10 0:46:49.719 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 10: subtitles (S_TEXT/UTF8), -sid 8, -slang spa| <0xb60fab90> 05 04/23/10 0:46:49.719 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 11: subtitles (S_TEXT/UTF8), -sid 9, -slang por| <0xb60fab90> 05 04/23/10 0:46:49.719 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 12: subtitles (S_TEXT/UTF8), -sid 10, -slang dut| <0xb60fab90> 05 04/23/10 0:46:49.719 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 13: subtitles (S_TEXT/UTF8), -sid 11, -slang rom| <0xb60fab90> 05 04/23/10 0:46:49.719 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 14: subtitles (S_TEXT/UTF8), -sid 12, -slang hun| <0xb60fab90> 05 04/23/10 0:46:49.719 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Track ID 15: audio (A_AC3) "Russian AC3 384 Kbps", -aid 0, -alang rus| <0xb60fab90> 05 04/23/10 0:46:49.720 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[mkv] Will play video track 1.| <0xb60fab90> 05 04/23/10 0:46:49.720 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Matroska file format detected.| <0xb60fab90> 05 04/23/10 0:46:49.720 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |VIDEO: [avc1] 1280x544 24bpp 23.976 fps 0.0 kbps ( 0.0 kbyte/s)| <0xb60fab90> 05 04/23/10 0:46:49.737 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |==========================================================================| <0xb60fab90> 05 04/23/10 0:46:49.737 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Forced video codec: ffmpeg12vdpau| <0xb60fab90> 05 04/23/10 0:46:49.742 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Forced video codec: ffwmv3vdpau| <0xb60fab90> 05 04/23/10 0:46:49.742 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Forced video codec: ffvc1vdpau| <0xb60fab90> 05 04/23/10 0:46:49.742 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Forced video codec: ffh264vdpau| <0xb60fab90> 05 04/23/10 0:46:49.742 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family| <0xb60fab90> 05 04/23/10 0:46:49.743 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Selected video codec: [ffh264vdpau] vfm: ffmpeg (FFmpeg H.264 (VDPAU))| <0xb60fab90> 05 04/23/10 0:46:49.744 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |==========================================================================| <0xb60fab90> 05 04/23/10 0:46:49.744 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |==========================================================================| <0xb60fab90> 05 04/23/10 0:46:49.744 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Forced audio codec: a52| <0xb60fab90> 05 04/23/10 0:46:49.744 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Opening audio decoder: [liba52] AC3 decoding with liba52| <0xb60fab90> 05 04/23/10 0:46:49.746 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Using SSE optimized IMDCT transform| <0xb60fab90> 05 04/23/10 0:46:49.747 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Using MMX optimized resampler| <0xb60fab90> 05 04/23/10 0:46:49.747 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |AUDIO: 48000 Hz, 2 ch, s16le, 384.0 kbit/25.00% (ratio: 48000->192000)| <0xb60fab90> 05 04/23/10 0:46:49.747 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Selected audio codec: [a52] afm: liba52 (AC3-liba52)| <0xb60fab90> 05 04/23/10 0:46:49.747 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |==========================================================================| <0xb60fab90> 05 04/23/10 0:46:49.809 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)| <0xb60fab90> 05 04/23/10 0:46:49.809 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Starting playback...| <0xb60fab90> 05 04/23/10 0:46:49.809 MPlayer_Player::Log [EngineOutputReader] Playback started: /home/public/data/videos/Windows Share-Volume_1 [39]/Forrest Gump/Forrest.Gump.HDTV.720p.x264.AC3.Rus.m2ts <0xb60fab90> 05 04/23/10 0:46:49.813 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[VD_FFMPEG] Trying pixfmt=0.| <0xb60fab90> 05 04/23/10 0:46:49.814 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Could not find matching colorspace - retrying with -vf scale...| <0xb60fab90> 05 04/23/10 0:46:49.814 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Opening video filter: [scale]| <0xb60fab90> 05 04/23/10 0:46:49.814 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |The selected video_out device is incompatible with this codec.| <0xb60fab90> 05 04/23/10 0:46:49.815 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Try appending the scale filter to your filter list,| <0xb60fab90> 05 04/23/10 0:46:49.815 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |e.g. -vf spp,scale instead of -vf spp.| <0xb60fab90> 05 04/23/10 0:46:49.815 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[h264_vdpau @ 0x88ae6e0]| <0xb60fab90> 05 04/23/10 0:46:49.815 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |decoding to PIX_FMT_NONE is not supported.| <0xb60fab90> 05 04/23/10 0:46:49.815 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[h264_vdpau @ 0x88ae6e0]| <0xb60fab90> 05 04/23/10 0:46:49.815 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |decode_slice_header error| <0xb60fab90> 05 04/23/10 0:46:49.815 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[VD_FFMPEG] Trying pixfmt=0.| <0xb60fab90> 05 04/23/10 0:46:49.815 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Could not find matching colorspace - retrying with -vf scale...| <0xb60fab90> 05 04/23/10 0:46:49.816 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Opening video filter: [scale]| <0xb60fab90> 05 04/23/10 0:46:49.816 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |The selected video_out device is incompatible with this codec.| <0xb60fab90> 05 04/23/10 0:46:49.816 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |Try appending the scale filter to your filter list,| <0xb60fab90> 05 04/23/10 0:46:49.816 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |e.g. -vf spp,scale instead of -vf spp.| <0xb60fab90> 05 04/23/10 0:46:49.816 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[h264_vdpau @ 0x88ae6e0]| <0xb60fab90> 05 04/23/10 0:46:49.817 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |decoding to PIX_FMT_NONE is not supported.| <0xb60fab90> 05 04/23/10 0:46:49.817 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[h264_vdpau @ 0x88ae6e0]| <0xb60fab90> 05 04/23/10 0:46:49.817 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |decode_slice_header error| <0xb60fab90> 05 04/23/10 0:46:49.817 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |[h264_vdpau @ 0x88ae6e0]| <0xb60fab90> 05 04/23/10 0:46:49.817 MPlayer_Player::Log [EngineOutputReader] Analyzing line: |no frame!| <0xb60fab90>
Решение проблемы
Возможным решением этой проблемы может стать добавление параметра -vf screenshot в строку запуска mplayer. По крайней мере, есть одни пример, когда это помогло.
