1

This is an annoying problem in Ubuntu 12.04/12.10/13.04 that I can't play a certain VCDs. This is not a missing codec or encrypted content issue - It raises an I/O error.

Well, I suspected the VCD might have physical damages. But no, it is actually not, it plays well in Windows 7 and the problem persists even in fresh VCDs.

Now let me give some very basic information:

In particular there are 3 *.dat files in the /mpegav directory.

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

The first two files are played or copied successfully without any error while the last one raises an I/O error.

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

While copying the file using usual cp command, an I/O error is raised. Putting a sudo before cp doesn't change anything.

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

Now another try with dd command. It does create a output file of 1.7MB only.

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

Before issuing all these commands I manually mounted the VCD file.

theo@theo-desktop ~ $ sudo mount -t iso9660 /dev/sr0 VCD1
mount: block device /dev/sr0 is write-protected, mounting read-only

Accessing the files from default mountpoint /media/theo/VideoCD results in the very same thing.

Just to emphasise the point that this is a fresh VCD, no physical damages and plays/ copies perfectly in Windows.

While another certain number of VCDs has only one *.dat file in their mpegav directory, (specially in the part 2, which doesn't have title/intros etc), plays/ copies without any error in Ubuntu.

This disturbs me very much why it'd not play in linux while it plays well in Windows. I don't want to keep Windows only for playing VCDs. I do have a very large collection of VCDs which I can't play or rip here.

And this same problem remained unresolved since January, see here: ubuntu 12.10 Cannot Play VCD

2 Answers2

4

I know this is a bit old question. I was searching with the same problem for my friend install mplayer try this to display how many tracks

mplayer vcd://

then it will be mostly the second track or 3rd I use this command for running the vcd

mplayer -fs -vo gl2 vcd://2 

on a two track vcd

-fs #show full screen
-vo gl2 #choose video output driver
vcd://  #play VCD

for more check mplayer man pages

Thanks to this post on ubuntuforums by TheFu

Vemman
  • 41
2

The reason very probably is, that you are accessing the VCDs files instead of accessing the disk directly. In short, the VCD uses less error correction than a usual data CD and relies on the fault tolerance of the used Video Codec, so it's rather probable that the files get errors during burning and can't be copied from the VCD afterwards, but playback works without problems if the disc is accessed appropriately. For more details about video cds, read the Wikipedia article and the mplayer manual chapter.

I'd recommend that you, instead of mounting the disc and accesssing the files via the file system, directly start playback of the vcd using a player that is capable of handling video cds like mplayer or VLC. To do this in VLC, either run vlc vcd:// or open the VLC GUI, go to the "Media" menu, click "Open Disc".

VLC media menu

In the following dialogue, select SVCD/VCD and input your drives /dev node (/dev/sr0 if I see correctly in your question).

VLC Open Disc dialogue

soulsource
  • 5,034