这是 Ubuntu 12.04/12.10/13.04 中的一个恼人的问题,我无法播放某些 VCD。这不是缺少编解码器或加密内容的问题 - 它引发了 I/O 错误。
嗯,我怀疑 VCD 可能有物理损坏。但事实并非如此,它在 Windows 7 中播放正常,即使是全新的 VCD 也存在此问题。
现在让我提供一些非常基本的信息:
特别是 /mpegav 目录中有 3 个 *.dat 文件。
theo@theo-desktop ~/VCD1/mpegav $ ls -l -h
total 660M
-r-------- 1 theo theo 2.5M Jun 6 2007 avseq01.dat
-r-------- 1 theo theo 3.4M Jun 6 2007 avseq02.dat
-r-------- 1 theo theo 654M Jun 6 2007 avseq03.dat
前两个文件播放或复制成功,没有任何错误,而最后一个文件引发了 I/O 错误。
theo@theo-desktop ~/VCD1/mpegav $ vlc avseq03.dat
VLC media player 2.0.4 Twoflower (revision 2.0.3-289-g6e6100a)
[0x11a2028] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
"sni-qt/5685" WARN 22:03:44.080 void StatusNotifierItemFactory::connectToSnw() Invalid interface to SNW_SERVICE
[0x7f9944001488] filesystem access error: failed to read (Input/output error)
[0x7f99440015d8] main stream error: cannot pre fill buffer
使用常规 cp 命令复制文件时,会出现 I/O 错误。在 cp 前添加 sudo 不会改变任何内容。
theo@theo-desktop ~/VCD1/mpegav $ cp avseq03.dat test.dat
cp: cannot create regular file `test.dat': Read-only file system
theo@theo-desktop ~/VCD1/mpegav $ cp avseq03.dat ~/test.dat
cp: reading `avseq03.dat': Input/output error
cp: failed to extend `/home/theo/test.dat': Input/output error
现在再次尝试使用 dd 命令。它确实只创建了一个 1.7MB 的输出文件。
theo@theo-desktop ~/VCD1/mpegav $ dd if=/dev/sr0 of=~/Desktop/VCD1.iso
dd: reading `/dev/sr0': Input/output error
3232+0 records in
3232+0 records out
1654784 bytes (1.7 MB) copied, 1.50804 s, 1.1 MB/s
在发出所有这些命令之前,我手动安装了 VCD 文件。
theo@theo-desktop ~ $ sudo mount -t iso9660 /dev/sr0 VCD1
mount: block device /dev/sr0 is write-protected, mounting read-only
从默认挂载点 /media/theo/VideoCD 访问文件会导致同样的结果。
只是为了强调这一点,这是一个全新 VCD,无物理损坏,可在 Windows 中完美播放/复制。
而另外一定数量的 VCD 在其 mpegav 目录中只有一个 *.dat 文件(特别是第 2 部分,其中没有标题/简介等),在 Ubuntu 中播放/复制时没有任何错误。
这让我很困惑,为什么它在 Linux 上不能播放,而在 Windows 上却能播放。我不想只在 Windows 上播放 VCD。我收藏了大量 VCD,但在这里无法播放或翻录。
自一月份以来,同样的问题仍未解决,请参见此处:ubuntu 12.10 无法播放 VCD
答案1
我知道这是一个有点老问题了。我正为我的朋友搜索同样的问题,mplayer
请尝试安装这个来显示有多少首曲目
mplayer vcd://
那么它将主要是第二首或第三首曲目我使用这个命令来运行vcd
mplayer -fs -vo gl2 vcd://2
在双轨 VCD 上
-fs #show full screen
-vo gl2 #choose video output driver
vcd:// #play VCD
更多信息请查看 mplayer 手册页
感谢 ubuntuforums 上的这篇文章作者:TheFu
答案2
原因很可能是,您正在访问 VCD 文件而不是直接访问磁盘。简而言之,VCD 使用的错误校正比普通数据 CD 少,并且依赖于所用视频编解码器的容错能力,因此文件很可能在刻录过程中出现错误,之后无法从 VCD 复制,但如果正确访问光盘,播放将毫无问题。有关视频 CD 的更多详细信息,请阅读维基百科文章和mplayer 手册章节。
我建议您不要安装光盘并通过文件系统访问文件,而是直接使用能够处理视频光盘的播放器(如 mplayer 或 VLC)开始播放 vcd。要在 VLC 中执行此操作,请运行vlc vcd://
或打开 VLC GUI,转到“媒体”菜单,单击“打开光盘”。
在下面的对话框中,选择 SVCD/VCD 并输入您的驱动器 /dev 节点(如果我在您的问题中看得正确的话,则为 /dev/sr0)。