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. По крайней мере, есть одни пример, когда это помогло.

Личные инструменты