Ubuntu 11.10 中视频播放无法正常工作

Ubuntu 11.10 中视频播放无法正常工作

(Ubuntu 11.10,带有 Compiz 的 Gnome Classic,Nvidia 显卡)

所有视频都会出现此问题,无论是 Firefox 中的 Youtube 视频、电影播放器​​中的 AVI 文件还是任何其他视频。视频根本无法播放。

当我开始播放任何类型的视频时,图像会在一两秒后停止。但是声音会继续。

以前似乎如果我删除中的所有文件~/.gstreamer-0.10/,然后重新启动,视频就会播放。然而现在情况已经不再如此。操作该目录中的文件对情况没有任何帮助。

我现在不再确定这是 gstreamer 问题还是其他问题。我愿意接受所有可能性。

如何才能让我的机器上的视频播放流畅?


更新:VLC 似乎现在可以正常工作了。但是,视频无法在任何浏览器中播放,因此仍有问题。


根据评论中的要求,这是从命令行播放的输出。请注意,它说“您的系统太慢,无法播放这个!”这显然是不正确的。在升级到 11.10 之前,计算机在播放任何大小的视频时都没有遇到任何问题。我假设这是其他问题的征兆。

$ mplayer standup_20090523.mp4
MPlayer2 UNKNOWN (C) 2000-2011 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 standup_20090523.mp4.
Detected file format: QuickTime/MPEG-4/Motion JPEG 2000 format (libavformat)
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 1: audio (aac), -aid 0, -alang und
VIDEO:  [H264]  480x320  24bpp  29.970 fps  706.1 kbps (86.2 kbyte/s)
Clip info:
 major_brand: isom
 minor_version: 512
 compatible_brands: isomiso2avc1mp41
 creation_time: 1970-01-01 00:00:00
 encoder: Lavf52.64.2
Load subtitles in .
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Asking decoder to use 4 threads if supported.
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 48000 Hz, 2 ch, s16le, 123.9 kbit/8.07% (ratio: 15492->192000)
Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
[AO OSS] audio_setup: Can't open audio device /dev/dsp: No such file or directory
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
A:   0.0 V:   0.0 A-V:  0.000 ct:  0.000   0/  0 ??% ??% ??,?% 0 0 
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
VO: [vdpau] 480x320 => 480x360 Planar YV12 
[vdpau] Got display refresh rate 60.020 Hz.
[vdpau] If that value looks wrong give the -vo vdpau:fps=X suboption manually.
A:   0.2 V:   0.3 A-V: -0.040 ct: -0.000   0/  0 ??% ??% ??,?% 0 0 
[AO_ALSA] Write error: Broken pipe
[AO_ALSA] Trying to reset soundcard.
A:   7.7 V:   2.0 A-V:  5.775 ct: -0.000   0/  0  7%  4% 61.8% 50 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.9 V:   8.0 A-V: -0.036 ct:  0.000   0/  0  2%  2% 15.2% 218 0 
[AO_ALSA] Write error: Broken pipe
[AO_ALSA] Trying to reset soundcard.
A:  11.1 V:  11.2 A-V: -0.043 ct:  0.000   0/  0  2%  2% 19.3% 300 0 
[AO_ALSA] Write error: Broken pipe
[AO_ALSA] Trying to reset soundcard.
A:  16.7 V:  11.2 A-V:  5.443 ct:  0.000   0/  0  2%  2% 24.7% 300 0 

Exiting... (Quit)

更多请求的命令行输出:

$ gst-launch-0.10 --gst-debug='*:2' playbin2 uri=file:///home/dave/Vi
Videos/ Visa/   
dave@homebase:~/Videos/Stand_Up_for_Mobile$ gst-launch-0.10 --gst-debug='*:2' playbin2 uri=file:///home/dave/Videos/Stand_Up_for_Mobile/standup_20090523.mp4
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
0:00:00.070988199 19816  0x97287c0 WARN                 qtdemux qtdemux_types.c:191:qtdemux_type_get: unknown QuickTime node type avc1
0:00:00.071037322 19816  0x97287c0 WARN                 qtdemux qtdemux_types.c:191:qtdemux_type_get: unknown QuickTime node type avcC
0:00:00.071062385 19816  0x97287c0 WARN                 qtdemux qtdemux.c:8541:qtdemux_parse_tree:<qtdemux0> Can't handle datetimes before 1970 yet, please file a bug at http://bugzilla.gnome.org
0:00:00.071373884 19816  0x97287c0 WARN                 qtdemux qtdemux.c:6896:qtdemux_parse_trak:<qtdemux0> unknown version 00000000
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
0:00:00.147461464 19816  0x959f050 WARN                     bin gstbin.c:2380:gst_bin_do_latency_func:<playbin20> did not really configure latency of 0:00:00.000000000
New clock: GstPulseSinkClock
0:00:27.651053215 19816  0x992aef0 WARN                   pulse pulsesink.c:630:gst_pulsering_stream_underflow_cb:<audiosink-actual-sink-pulse> Got underflow
^CCaught interrupt -- handling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 45797315295 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

答案1

这可能是由于插件冲突造成的 - 特别是当您一直在安装各种媒体播放器和其他编解码器时。

不幸的是 - 插件不一定有明显的名称,因此找到正确的冲突插件可能会很困难。

如果你不介意一点损坏(之后你总是可以重新安装),那么你可以尝试以下方法。或者使用克隆兹拉 或者部分图像如果您想要快速恢复,请备份您的硬盘。

删除冲突的媒体播放器

sudo apt-get remove smplayer
sudo apt-get remove mplayer
sudo apt-get remove libx264-67 --purge
sudo apt-get remove vlc

禁用 Medibuntu 存储库

正如标题所说 - 在软件源中,直到 medibuntu(如果您已启用它)。

整理已安装的编解码器

sudo apt-get remove --purge ffmpeg gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-plugins-ugly liba52-0.7.4 libavcodec52 libavformat52 libavutil49 libdvdnav4 libdvdread4 libgsm1 libid3tag0 libmad0 libmpeg2-4 libpostproc51 libschroedinger-1.0-0 libsidplay1 libswscale0 libtwolame0 ubuntu-restricted-extras libavcodec52 libavformat52 libswscale0 libvlc2 libvlccore2 vlc vlc-data vlc-nox vlc-plugin-pulse

注意 - 如果您有E: 无法找到包 xxxx”类型语句 - 从上面的行中删除缺失的包。

重新安装编解码器

尝试播放您的视频 - 仅安装 Totem 所称缺少的编解码器。即

sudo apt-get install [package-name]

通常安装ubuntu-restricted-extras(或 lubuntu/xubuntu/kubuntu 的变体)是安全的,因此您可以尝试再次安装该包。

ie-适用于 ubuntu

sudo apt-get install ubuntu-restricted-extras

来源


有一个关于 archlinux 的报告论坛中有关 gstreamer-ffmpeg 版本的讨论看起来它可能适用于 Ubuntu 和您的问题。

Ubuntu 11.10和archlinux共用一个版本:

gstreamer 的开发人员已决定从 0.10.12 版开始改用 libav(ffmpeg 的一个分支)。libav 提供的一些函数与 ffmpeg 中的不同,并且存在一个问题:任何依赖于这些 ffmpeg 函数调用(来自 gstreamer0.10-ffmpeg 插件)的应用程序都将无法运行

我认为这应该被报告为启动板错误报告。

假设这是这个问题——有两种可能的解决方法。

  1. 用作vlc您的视频播放器 - 它不依赖于 gstreamer。
  2. 安装该ffmpeg包并用来ffplay播放您的视频。

提交错误报告 - 但我希望其他人可以在此期间解决您的问题。

答案2

从 gst-launch 的输出来看,我猜这确实是编解码器问题,至少对于该文件而言。如果安装gstreamer0.10-ffmpeggstreamer0.10-plugins-badgstreamer0.10-plugins-ugly没有帮助,我认为最好的选择是对该文件使用 vlc。

但是,如果视频根本不起作用,甚至无法运行

gst-launch-0.10 videotestsrc ! autovideosink

那么视频输出肯定也有问题。尝试运行gstreamer-properties并确保所有输出测试按钮均能正常工作。

相关内容