Opened 13 years ago

Closed 11 years ago

Last modified 7 years ago

#386 closed defect (needs_more_info)

Missing audio and subtitle streams in vob file

Reported by: Aztek Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords: mpegps
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

==Problem==
I want to transcode a VOB into x264 on a headless Debian stable server.
mediainfo reports a number of audio tracks and subtitle streams.
ffprobe (and ffmpeg) reports no audio nor subtitle stream.

I'd like to provide the VOB file but I can't for legal reasons. I tried to cut the file (with dd) to give a "small sample" but ffprobe behaviour seems to depend on the length of the resulting VOB file (with 10MB, all the audio streams are found but non of the subtitles streams for instance; at 500MB, just one audio stream is available).

ffplay can successfully play the file but I am not sure I can actually choose the audio stream I want.

I can provide anything you might consider usefull.

Thanks for your help.

==Important note==
I am sure all the VOB files I concatenated actually contained parts of the movie (all of those were needed otherwise parts of the movie just disappear).
mediainfo reports a menu stream (and that might be the reason why ffprobe reports wrong streams). But as I said, every VOB files I used are needed.

So, if you know any way to extract precisely menu-related stuff from the VOB, please let me know. (I'd like to avoid mplayer or avidemux: those depend on too many useless things like dbus or avahi)

==Software version==
ffprobe 0.8
libavutil 51. 9. 1
libavcodec 53. 7. 0
libavformat 53. 4. 0
libavdevice 53. 1. 1
libavfilter 2. 23. 0
libswscale 2. 0. 0
libpostproc 51. 2. 0
(also tried with ffmpeg v.8.0.1 from Debian unstable, same result with the same files so I reverted)
MediaInfoLib - v0.7.47

==ffprobe output==
(same result with ffmpeg v. 8.0.1)

$ffprobe FULLVOB.vob
ffprobe version 0.8, Copyright (c) 2007-2011 the FFmpeg developers
  built on Jul 22 2011 16:19:50 with gcc 4.6.1
  configuration: --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libdirac --disable-decoder=libdirac --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --enable-avfilter --enable-frei0r --enable-libopencv --enable-libfreetype --enable-libvo-aacenc --enable-libvo-amrwbenc --libdir=/usr/lib/x86_64-linux-gnu --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-vis --shlibdir=/usr/lib/x86_64-linux-gnu
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[mpeg @ 0x1496440] max_analyze_duration reached
Input #0, mpeg, from 'FULLVOB.vob':
  Duration: 00:00:31.88, start: 0.162622, bitrate: 1284320 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], 5500 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc

==mediainfo output==

$ mediainfo FULLVOB.vob 
General
Complete name                    : FULLVOB.vob
Format                           : MPEG-PS
File size                        : 4.77 GiB
Duration                         : 1h 13mn
Overall bit rate                 : 9 334 Kbps

Video
ID                               : 224 (0xE0)
Format                           : MPEG Video
Format version                   : Version 2
Format profile                   : Main@Main
Format settings, BVOP            : Yes
Format settings, Matrix          : Default
Format settings, GOP             : M=3, N=15
Duration                         : 1h 13mn
Bit rate                         : 7 997 Kbps
Maximum bit rate                 : 5 500 Kbps
Width                            : 720 pixels
Height                           : 480 pixels
Display aspect ratio             : 16:9
Frame rate                       : 29.970 fps
Standard                         : NTSC
Color space                      : YUV
Chroma subsampling               : 4:2:0
Bit depth                        : 8 bits
Scan type                        : Interlaced
Scan order                       : Top Field First
Compression mode                 : Lossy
Bits/(Pixel*Frame)               : 0.772
Stream size                      : 4.08 GiB (86%)

Audio #1
ID                               : 189 (0xBD)-128 (0x80)
Format                           : AC-3
Format/Info                      : Audio Coding 3
Mode extension                   : CM (complete main)
Muxing mode                      : DVD-Video
Duration                         : 7s 631ms
Bit rate mode                    : Constant
Bit rate                         : 384 Kbps
Channel(s)                       : 6 channels
Channel positions                : Front: L C R, Side: L R, LFE
Sampling rate                    : 48.0 KHz
Bit depth                        : 16 bits
Compression mode                 : Lossy
Delay relative to video          : -118ms
Stream size                      : 358 KiB (0%)

Audio #2
ID                               : 189 (0xBD)-129 (0x81)
Format                           : AC-3
Format/Info                      : Audio Coding 3
Mode extension                   : CM (complete main)
Muxing mode                      : DVD-Video
Duration                         : 14s 689ms
Bit rate mode                    : Constant
Bit rate                         : 192 Kbps
Channel(s)                       : 1 channel
Channel positions                : Front: C
Sampling rate                    : 48.0 KHz
Bit depth                        : 16 bits
Compression mode                 : Lossy
Delay relative to video          : -118ms
Stream size                      : 344 KiB (0%)

Audio #3
ID                               : 189 (0xBD)-130 (0x82)
Format                           : AC-3
Format/Info                      : Audio Coding 3
Mode extension                   : CM (complete main)
Muxing mode                      : DVD-Video
Duration                         : 14s 689ms
Bit rate mode                    : Constant
Bit rate                         : 192 Kbps
Channel(s)                       : 1 channel
Channel positions                : Front: C
Sampling rate                    : 48.0 KHz
Bit depth                        : 16 bits
Compression mode                 : Lossy
Delay relative to video          : -118ms
Stream size                      : 344 KiB (0%)

Audio #4
ID                               : 189 (0xBD)-131 (0x83)
Format                           : AC-3
Format/Info                      : Audio Coding 3
Mode extension                   : CM (complete main)
Muxing mode                      : DVD-Video
Duration                         : 14s 689ms
Bit rate mode                    : Constant
Bit rate                         : 192 Kbps
Channel(s)                       : 1 channel
Channel positions                : Front: C
Sampling rate                    : 48.0 KHz
Bit depth                        : 16 bits
Compression mode                 : Lossy
Delay relative to video          : -118ms
Stream size                      : 344 KiB (0%)

Audio #5
ID                               : 189 (0xBD)-132 (0x84)
Format                           : AC-3
Format/Info                      : Audio Coding 3
Format profile                   : Dolby Digital
Mode extension                   : CM (complete main)
Muxing mode                      : DVD-Video
Duration                         : 6s 131ms
Bit rate mode                    : Constant
Bit rate                         : 192 Kbps
Channel(s)                       : 2 channels
Channel positions                : Front: L R
Sampling rate                    : 48.0 KHz
Bit depth                        : 16 bits
Compression mode                 : Lossy
Delay relative to video          : -117ms
Stream size                      : 144 KiB (0%)

Text #1
ID                               : 189 (0xBD)-32 (0x20)
Format                           : RLE
Format/Info                      : Run-length encoding
Muxing mode                      : DVD-Video
Delay relative to video          : -118ms

Text #2
ID                               : 189 (0xBD)-34 (0x22)
Format                           : RLE
Format/Info                      : Run-length encoding
Muxing mode                      : DVD-Video
Delay relative to video          : -118ms

Text #3
ID                               : 189 (0xBD)-36 (0x24)
Format                           : RLE
Format/Info                      : Run-length encoding
Muxing mode                      : DVD-Video
Delay relative to video          : -118ms

Text #4
ID                               : 189 (0xBD)-38 (0x26)
Format                           : RLE
Format/Info                      : Run-length encoding
Muxing mode                      : DVD-Video
Delay relative to video          : -118ms

Text #5
ID                               : 224 (0xE0)-DVD-2
Format                           : EIA-608
Muxing mode                      : DVD-Video
Muxing mode, more info           : Muxed in Video #1
Stream size                      : 0.00 Byte (0%)

Menu

==mediainfo detailed output==
input:
mediainfo --Full FULLVOB.vob

In the file attached to this ticket.

Attachments (1)

mediainfo_full.txt (31.8 KB ) - added by Aztek 13 years ago.
Output of mediainfo --Full FULLVIDEO.VOB

Download all attachments as: .zip

Change History (28)

by Aztek, 13 years ago

Attachment: mediainfo_full.txt added

Output of mediainfo --Full FULLVIDEO.VOB

comment:1 by Carl Eugen Hoyos, 13 years ago

Resolution: invalid
Status: newclosed

Mediainfo output is almost never useful; complete, uncut output of your (failing) ffmpeg command is always needed!

max_analyze_duration reached

This line indicates that you may need to provide -analyzeduration very_big_value to find all streams in the file. For program streams (vob files), I don't think there is a limit on when (= how late in a file) a stream may start, but in general, users expect FFmpeg not to scan a whole file on initialisation.

Please test with -analyzeduration 1000000000, and reopen the issue if it still fails.

comment:2 by Aztek, 13 years ago

I tested with '-analyzeduration 2147484000': no improvement (but thanks for the trick: I'm new to ffmpeg).

Last edited 13 years ago by Aztek (previous) (diff)

comment:3 by Aztek, 13 years ago

Resolution: invalid
Status: closedreopened

I tested with '-analyzeduration 2147484000': no improvement.

comment:4 by Carl Eugen Hoyos, 13 years ago

Please provide complete, uncut output of your failing ffmpeg command.

comment:5 by Aztek, 13 years ago

Here it is:

$ffmpeg -i FULLVOB.vob -analyzeduration 2147480000 -map 0.1 -vn -ar 48000 -ac 2 -ab 192k -y audio-EN.mp3
ffmpeg version 0.8, Copyright (c) 2007-2011 the FFmpeg developers
  built on Jul 22 2011 16:19:50 with gcc 4.6.1
  configuration: --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libdirac --disable-decoder=libdirac --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --enable-avfilter --enable-frei0r --enable-libopencv --enable-libfreetype --enable-libvo-aacenc --enable-libvo-amrwbenc --libdir=/usr/lib/x86_64-linux-gnu --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-vis --shlibdir=/usr/lib/x86_64-linux-gnu
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0

[mpeg @ 0x1355960] max_analyze_duration reached
Input #0, mpeg, from 'FULLVOB.vob':
  Duration: 00:00:31.88, start: 0.162622, bitrate: 1284320 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], 5500 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Output #0, mp3, to 'audio-EN.mp3':
Output file #0 does not contain any stream

That's precisely why I sticked to ffprobe: ffmpeg is great but cannot copy what it cannot see.

EDIT: The duration of the actual video file is around 80 minutes, not 32 seconds. That's why I think ffmpeg is just looking at the menu stream, not the AV film.

Last edited 13 years ago by Aztek (previous) (diff)

comment:6 by Carl Eugen Hoyos, 13 years ago

Please upload the sample to http://www.datafilehost.com/

comment:7 by Carl Eugen Hoyos, 13 years ago

How was the 4.77 GiB file produced? My vob files are all <= 1GB.

comment:8 by Aztek, 13 years ago

I will upload the file this week end: I'm not home and I can't VPN from where I am (nor SSH).

About the VOB files:

1) Orgiginal VOB files were <1GB. It's by design because some platforms can't handle more at once.
2) Usually, those VOB files are split the dumb way : cat WHOLE_MOVIE.VOB | split -b 1g
3) So what I did was using cat PART_{1,2,3,4}.VOB > FULLMOVIE.VOB. I first launched mplayer to make sure the VOB files contained audio/video.
I also tried vobcopy -n 1 -l /dev/sr0 to directly extract and concatenate all the VOB files from the DVD.
4) When I saw this wasn't working, I tried on individual files.
I didn't try ffmpeg on them but ffprobe (if ffprobe is blind, ffmpeg wouldn't see any better I thought).

==1ST VOB (1GB)==

$ ffprobe -analyzeduration 2000000000  VTS_02_1.VOB
ffprobe version 0.8, Copyright (c) 2007-2011 the FFmpeg developers
  built on Jul 22 2011 16:19:50 with gcc 4.6.1
  configuration: --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libdirac --disable-decoder=libdirac --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --enable-avfilter --enable-frei0r --enable-libopencv --enable-libfreetype --enable-libvo-aacenc --enable-libvo-amrwbenc --libdir=/usr/lib/x86_64-linux-gnu --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-vis --shlibdir=/usr/lib/x86_64-linux-gnu
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[mpeg @ 0x252f5c0] max_analyze_duration reached
Input #0, mpeg, from 'VTS_02_1.VOB':
  Duration: 00:20:27.50, start: 0.162622, bitrate: 6997 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], 5500 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x83]: Audio: ac3, 0 channels
    Stream #0.2[0x81]: Audio: ac3, 0 channels
    Stream #0.3[0x80]: Audio: ac3, 0 channels
    Stream #0.4[0x84]: Audio: ac3, 0 channels
    Stream #0.5[0x82]: Audio: ac3, 0 channels

==2ND VOB (1GB)==

$ ffprobe -analyzeduration 2000000000  VTS_02_2.VOB
ffprobe version 0.8, Copyright (c) 2007-2011 the FFmpeg developers
  built on Jul 22 2011 16:19:50 with gcc 4.6.1
  configuration: --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libdirac --disable-decoder=libdirac --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --enable-avfilter --enable-frei0r --enable-libopencv --enable-libfreetype --enable-libvo-aacenc --enable-libvo-amrwbenc --libdir=/usr/lib/x86_64-linux-gnu --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-vis --shlibdir=/usr/lib/x86_64-linux-gnu
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[mpeg2video @ 0x1bd90a0] mpeg_decode_postinit() failure
[mpeg2video @ 0x1bd90a0] mpeg_decode_postinit() failure
[mpeg2video @ 0x1bd90a0] mpeg_decode_postinit() failure
Input #0, mpeg, from 'VTS_02_2.VOB':
  Duration: 26:26:14.32, start: 1227.918867, bitrate: 90 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], 7500 kb/s, 24.35 fps, 59.94 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x83]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
    Stream #0.2[0x81]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
    Stream #0.3[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
    Stream #0.4[0x84]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
    Stream #0.5[0x82]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
    Stream #0.6[0x25]: Subtitle: dvdsub
    Stream #0.7[0x24]: Subtitle: dvdsub
    Stream #0.8[0x23]: Subtitle: dvdsub
    Stream #0.9[0x22]: Subtitle: dvdsub
    Stream #0.10[0x21]: Subtitle: dvdsub
    Stream #0.11[0x20]: Subtitle: dvdsub
    Stream #0.12[0x27]: Subtitle: dvdsub
    Stream #0.13[0x26]: Subtitle: dvdsub

==3RD VOB (1GB)==

$ ffprobe -analyzeduration 2000000000  VTS_02_3.VOB
ffprobe version 0.8, Copyright (c) 2007-2011 the FFmpeg developers
  built on Jul 22 2011 16:19:50 with gcc 4.6.1
  configuration: --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libdirac --disable-decoder=libdirac --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --enable-avfilter --enable-frei0r --enable-libopencv --enable-libfreetype --enable-libvo-aacenc --enable-libvo-amrwbenc --libdir=/usr/lib/x86_64-linux-gnu --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-vis --shlibdir=/usr/lib/x86_64-linux-gnu
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[mpeg @ 0x23f65c0] max_analyze_duration reached
Input #0, mpeg, from 'VTS_02_3.VOB':
  Duration: 00:20:39.36, start: 958.526856, bitrate: 6930 kb/s
    Stream #0.0[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
    Stream #0.1[0x1e0]: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], 7500 kb/s, 23.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc
    Stream #0.2[0x84]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
    Stream #0.3[0x82]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
    Stream #0.4[0x83]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
    Stream #0.5[0x81]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
    Stream #0.6[0x23]: Subtitle: dvdsub
    Stream #0.7[0x22]: Subtitle: dvdsub
    Stream #0.8[0x25]: Subtitle: dvdsub
    Stream #0.9[0x24]: Subtitle: dvdsub
    Stream #0.10[0x21]: Subtitle: dvdsub
    Stream #0.11[0x20]: Subtitle: dvdsub
    Stream #0.12[0x27]: Subtitle: dvdsub
    Stream #0.13[0x26]: Subtitle: dvdsub

==4TH VOB (1GB)==

$ ffprobe -analyzeduration 2000000000  VTS_02_4.VOB
ffprobe version 0.8, Copyright (c) 2007-2011 the FFmpeg developers
  built on Jul 22 2011 16:19:50 with gcc 4.6.1
  configuration: --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libdirac --disable-decoder=libdirac --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --enable-avfilter --enable-frei0r --enable-libopencv --enable-libfreetype --enable-libvo-aacenc --enable-libvo-amrwbenc --libdir=/usr/lib/x86_64-linux-gnu --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-vis --shlibdir=/usr/lib/x86_64-linux-gnu
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mpeg, from 'VTS_02_4.VOB':
  Duration: 00:20:21.63, start: 2197.949489, bitrate: 7031 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], 7500 kb/s, 23.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x84]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
    Stream #0.2[0x82]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
    Stream #0.3[0x83]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
    Stream #0.4[0x81]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
    Stream #0.5[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s

==5TH VOB (786MB)==

$ ffprobe -analyzeduration 2000000000  VTS_02_5.VOB
ffprobe version 0.8, Copyright (c) 2007-2011 the FFmpeg developers
  built on Jul 22 2011 16:19:50 with gcc 4.6.1
  configuration: --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libdirac --disable-decoder=libdirac --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --enable-avfilter --enable-frei0r --enable-libopencv --enable-libfreetype --enable-libvo-aacenc --enable-libvo-amrwbenc --libdir=/usr/lib/x86_64-linux-gnu --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-vis --shlibdir=/usr/lib/x86_64-linux-gnu
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[mpeg2video @ 0x16940a0] mpeg_decode_postinit() failure
[mpeg2video @ 0x16940a0] mpeg_decode_postinit() failure
[mpeg2video @ 0x16940a0] mpeg_decode_postinit() failure
[mpeg2video @ 0x16940a0] mpeg_decode_postinit() failure
[mpeg2video @ 0x16940a0] mpeg_decode_postinit() failure
[mpeg2video @ 0x16940a0] mpeg_decode_postinit() failure
[mpeg @ 0x16915c0] max_analyze_duration reached
Input #0, mpeg, from 'VTS_02_5.VOB':
  Duration: 25:34:16.11, start: 3419.645489, bitrate: 71 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], 7500 kb/s, 24.98 fps, 59.94 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x84]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
    Stream #0.2[0x82]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
    Stream #0.3[0x83]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
    Stream #0.4[0x81]: Audio: ac3, 48000 Hz, mono, s16, 192 kb/s
    Stream #0.5[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
    Stream #0.6[0x25]: Subtitle: dvdsub
    Stream #0.7[0x24]: Subtitle: dvdsub
    Stream #0.8[0x23]: Subtitle: dvdsub
    Stream #0.9[0x22]: Subtitle: dvdsub
    Stream #0.10[0x21]: Subtitle: dvdsub
    Stream #0.11[0x20]: Subtitle: dvdsub
    Stream #0.12[0x27]: Subtitle: dvdsub
    Stream #0.13[0x26]: Subtitle: dvdsub

As you can see, even though all those VOBs contain audio stream, some lack the subtitles and weird errors are given.
That's why I though merging the files woulb be a good idea (and that's also what people seem to do).

comment:9 by Aztek, 13 years ago

Hi there,

It's alright: you can close this ticket if you are not interested in DVD format handling.

mplayer did the trick by correctly extracting the video stream (parts of X11, DBUS and stuff are installed now on a headless server... ugly!)

My guess is that the menu was actually embedded in some VOB files (in this particular DVD in contrast with most of DVDs I deal with): when I played with mplayer the VOB file I created, a menu was displayed (which shouldn't be).

That's a shame ffmpeg can't handle DVD ISOs or "fat" VOB files: I do not know of any almost non fancy dependence-free software that can handle DVD streams and extract them correctly.
Unfortunately, I'm far from being good enough to write something to 'really' solve my problem. So, sorry for just complaining.

Thanks for all and keep up the good work: even with this problem, I did not regret the switch to ffmpeg.

Last edited 13 years ago by Aztek (previous) (diff)

comment:10 by streamingguy, 12 years ago

Status: reopenedopen

Hello,

Any update on this issue? I see the same issue with one of my VOB file. ffmpeg is reporting as zero audio channels, even though it has 5.1 audio stream.

comment:11 by streamingguy, 12 years ago

Hello Aztek,

Are you able to solve this issue? I tried several encoders in past 2 months and Handbrake is the only one, which is working fine. All others are reporting zero audio channels OR no audio stream.

in reply to:  10 ; comment:12 by Carl Eugen Hoyos, 12 years ago

Replying to streamingguy:

I see the same issue with one of my VOB file. ffmpeg is reporting as zero audio channels, even though it has 5.1 audio stream.

Please provide a ffmpeg command line that allows to reproduce your problem (no external libraries please if not necessary to reproduce) together with complete, uncut console output.
A sample might be needed, too.

comment:13 by Aztek, 12 years ago

Hi streamingguy,

This issue is related to the way the VOB files were created. Namely, menus, bonuses and other non-audio/video stuff were merged in the VOB files in such a way that they can't be easily extracted (for instance menu-related stuff is scattered throughout the first VOB files and the player has to "jump" to play it). If you want convert such a VOB file, you must use a software that is fully aware of the DVD format. ffmpeg only handles audio/video VOB files, not DVD files. That's it.

If you want to convert your "fat" VOB files to something else, dump the stream of interest with some DVD-aware program such as mplayer: mplayer fully understand VOB format and doesn't assume VOB == audio/video.

in reply to:  12 comment:14 by streamingguy, 12 years ago

Hello,

Thank you for your quick reply! I am very new to FFMPEG and sorry if I miss anything in my below details:

Source: .VOB file extracted from DVD decrypter (first chapter of the movie). This has one video stream, one audio stream (AC3 5.1).

Issue: When I try to encode into any format, it reports 0 channels in ac3 stream and there is no audio track in the output. I tried with directly copying the AC3 stream, encoding AC3 to AAC, using analyzeduration option etc.,

But, the same file is working fine when I use Handbrake, MEncoder.

Source to download: You can download .VOB file here: http://poacric.blob.core.windows.net/$root/TestClip.zip

Command Used: ffmpeg -i d:\testclip.vob -acodec copy d:\ffmpegout.mp4

Console output:

C:\ffmpeg>ffmpeg -i d:\testclip.vob -acode
c copy d:\ffmpegout.mp4
ffmpeg version N-35966-g1d0ae92, Copyright (c) 2000-2011 the FFmpeg developers
  built on Dec 19 2011 13:10:19 with gcc 4.6.2
  configuration: --disable-static --enable-shared --enable-gpl --enable-version3
 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enable-bzli
b --enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb --enable
-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-l
ibrtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-li
bvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-l
ibx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil    51. 32. 0 / 51. 32. 0
  libavcodec   53. 46. 1 / 53. 46. 1
  libavformat  53. 27. 0 / 53. 27. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 53. 0 /  2. 53. 0
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[mpeg @ 0000000000497FD0] max_analyze_duration 5000000 reached at 5004667

Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/
1001) -> 59.94 (60000/1001)
Input #0, mpeg, from 'd:\testclip.vob':
  Duration: 00:04:51.99, start: 0.316978, bitrate: 4939 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [SAR 32:27 DA
R 16:9], 8000 kb/s, 23.98 fps, 59.94 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x80]: Audio: ac3, 0 channels
[buffer @ 00000000029E0BE0] w:720 h:480 pixfmt:yuv420p tb:1/1000000 sar:32/27 sw
s_param:
[libx264 @ 00000000027E0810] using SAR=32/27
[libx264 @ 00000000027E0810] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShu
ffle SSE4.2
[libx264 @ 00000000027E0810] profile High, level 3.1
[libx264 @ 00000000027E0810] 264 - core 119 r2106 07efeb4 - H.264/MPEG-4 AVC cod
ec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 r
ef=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed
_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pski
p=1 chroma_qp_offset=-2 threads=12 sliced_threads=0 nr=0 decimate=1 interlaced=0
 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 di
rect=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra
_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69
qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'd:\ffmpegout.mp4':
  Metadata:
    encoder         : Lavf53.27.0
    Stream #0:0: Video: h264 (![0][0][0] / 0x0021), yuv420p, 720x480 [SAR 32:27
DAR 16:9], q=-1--1, 60k tbn, 59.94 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video -> libx264)
Press [q] to stop, [?] for help
[mpeg2video @ 00000000004AB7C0] warning: first frame is no keyframe
    Last message repeated 1 times
frame=  117 fps=  0 q=31.0 size=     273kB time=00:00:00.98 bitrate=2273.2kbits/
frame=  205 fps=201 q=31.0 size=     602kB time=00:00:02.45 bitrate=2011.7kbits/
frame=  282 fps=183 q=31.0 size=     861kB time=00:00:03.73 bitrate=1887.4kbits/
frame=  367 fps=178 q=31.0 size=    1179kB time=00:00:05.15 bitrate=1874.1kbits/
frame=  466 fps=182 q=31.0 size=    1376kB time=00:00:06.80 bitrate=1655.8kbits/
frame=  475 fps=175 q=-1.0 Lsize=    1401kB time=00:00:07.89 bitrate=1454.6kbits
/s dup=273 drop=0
video:1396kB audio:0kB global headers:0kB muxing overhead 0.367020%
[libx264 @ 00000000027E0810] frame I:3     Avg QP:23.66  size: 48841
[libx264 @ 00000000027E0810] frame P:309   Avg QP:26.15  size:  4086
[libx264 @ 00000000027E0810] frame B:163   Avg QP:30.33  size:   122
[libx264 @ 00000000027E0810] consecutive B-frames: 49.5%  7.2% 21.5% 21.9%
[libx264 @ 00000000027E0810] mb I  I16..4: 25.5% 46.0% 28.5%
[libx264 @ 00000000027E0810] mb P  I16..4:  1.0%  0.6%  0.0%  P16..4: 22.2%  4.5
%  4.5%  0.0%  0.0%    skip:67.1%
[libx264 @ 00000000027E0810] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8: 11.1%  0.0
%  0.0%  direct: 0.0%  skip:88.9%  L0:57.4% L1:39.9% BI: 2.6%
[libx264 @ 00000000027E0810] 8x8 transform intra:40.0% inter:74.5%
[libx264 @ 00000000027E0810] coded y,uvDC,uvAC intra: 44.1% 49.2% 24.7% inter: 1
1.6% 4.2% 1.0%
[libx264 @ 00000000027E0810] i16 v,h,dc,p: 39% 42%  6% 13%
[libx264 @ 00000000027E0810] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 10% 32% 37%  3%  2%
 2%  4%  3%  7%
[libx264 @ 00000000027E0810] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu:  6% 64% 14%  2%  2%
 2%  3%  2%  5%
[libx264 @ 00000000027E0810] i8c dc,h,v,p: 40% 48% 10%  2%
[libx264 @ 00000000027E0810] Weighted P-Frames: Y:0.3% UV:0.3%
[libx264 @ 00000000027E0810] ref P L0: 67.2% 13.1% 10.0%  9.8%
[libx264 @ 00000000027E0810] ref B L0: 98.4%  1.3%  0.3%
[libx264 @ 00000000027E0810] ref B L1: 96.1%  3.9%
[libx264 @ 00000000027E0810] kb/s:1442.51
Received signal 2: terminating.


Please let me know, if you need any more information.

I have been searching for a proper encoder from past 2 months and couldn't find a proper solution.

My requirement: I have several DVDs and want to convert them into MP4/M2TS/TS files with 2 audio streams (AC3 5.1 and AAC). Also, want to add watermark on the output. Tried different encoders, but nothing is working as per my requirement.

Thank you for your time!

Replying to cehoyos:

Replying to streamingguy:

I see the same issue with one of my VOB file. ffmpeg is reporting as zero audio channels, even though it has 5.1 audio stream.

Please provide a ffmpeg command line that allows to reproduce your problem (no external libraries please if not necessary to reproduce) together with complete, uncut console output.
A sample might be needed, too.

Last edited 12 years ago by streamingguy (previous) (diff)

in reply to:  13 comment:15 by streamingguy, 12 years ago

Hello Aztek,

Thank you so much for your quick reply and your suggestion. It worked great with mplayer.

But, I also wanted to add watermark to my video, which is not available on mencoder (am I missing something here?). I am using mencoder on Windows platform.

As I mentioned above, my requirement is to convert 100+ of DVDs into MP4/M2TS/TS files with 2 audio streams with watermark. Please suggest me if you have better UI which supports my requirement.

I have tried many encoders and some are having issues with audio, some do not have watermark option, some do not multiple audio stream option (for output) and some are giving audio/video sync issues. We have 100+ encoders on the web, but still couldn't find one with these options :-(

Thank you for your time!

Replying to Aztek:

Hi streamingguy,

This issue is related to the way the VOB files were created. Namely, menus, bonuses and other non-audio/video stuff were merged in the VOB files in such a way that they can't be easily extracted (for instance menu-related stuff is scattered throughout the first VOB files and the player has to "jump" to play it). If you want convert such a VOB file, you must use a software that is fully aware of the DVD format. ffmpeg only handles audio/video VOB files, not DVD files. That's it.

If you want to convert your "fat" VOB files to something else, dump the stream of interest with some DVD-aware program such as mplayer: mplayer fully understand VOB format and doesn't assume VOB == audio/video.

comment:16 by streamingguy, 12 years ago

Any update on this issue?

Thank you

comment:17 by streamingguy, 12 years ago

Just tested with 0.10 build, but still having the same issue. Any update on this issue?

comment:18 by streamingguy, 12 years ago

Hello Aztek,

When you get few minutes, could you please update version and component of this ticket? so that it will be addressed by corresponding people easily?

Thank you

comment:19 by Carl Eugen Hoyos, 12 years ago

@streamingguy:
Why do you think an issue with a vob file that starts with a DVD menu before the actual content (and probably cannot be fixed without special DVD handling, see "DVD reader protocol" on ffmpeg-devel for a patch that may or may not help with the original problem) is related to a vob file with audio that starts late (which is perfectly legal in a vob file, ticket #598 contains a link to a vob sample with late starting subtitles)? Please open a new ticket, use ffmpeg -analyzeduration 2000000000 -i testclip.vob out.wav as command line.

in reply to:  18 ; comment:20 by Aztek, 12 years ago

Good to hear mplayer did the trick.

About the decent encoder-thing search: AFAIK, mencoder and a lot of softwares are built on the top of ffmpeg. When you use mencoder, you basically use mplayer to dump audio/video stream and then use the embedded ffmpeg to encode to what you wants.

About the problem with your testclip: there might be no audio because audio stream might show up later in the file (your testclip is only ~1MB long, audio might begin at 6MB). Well, since you said mplayer -dumpstream did the trick, it's no problem anymore.

About the watermark: please keep in mind this is annoying to see. There is an how to there : http://www.idude.net/index.php/how-to-watermark-a-video-using-ffmpeg/

If you want to keep credit for a video, update metadata of your file: people won't bother to change it afterwards.

Offtopic: streamguy, a bugtracker is not a forum: folks receive e-mails each time you post something and post such as "Any update ?" are useless (you don't give any extra information). Saying that the method did not work IS an interesting extra piece of information. I understand that "bumping" might be tempting but, unlike forums, every open threads are reviewed once in a while. Don't take this wrong: it's great that you try to help to enhance the software by reporting bugs! I'm just telling you to be a bit patient.

Replying to streamingguy:

Hello Aztek,

When you get few minutes, could you please update version and component of this ticket? so that it will be addressed by corresponding people easily?

Thank you

in reply to:  20 comment:21 by Carl Eugen Hoyos, 12 years ago

Replying to Aztek:

About the decent encoder-thing search: AFAIK, mencoder and a lot of softwares are built on the top of ffmpeg. When you use mencoder, you basically use mplayer to dump audio/video stream and then use the embedded ffmpeg to encode to what you wants.

Unfortunately, that is not entirely correct:
MEncoder does have features that are not yet present in FFmpeg, but MEncoder is not actively maintained, meaning many bugs will likely not be fixed while FFmpeg is actively maintained, and reporting bugs often leads to fixes.

About the problem with your testclip: there might be no audio because audio stream might show up later in the file (your testclip is only ~1MB long, audio might begin at 6MB).

The sample does contain audio, FFmpeg does not see it because audio starts several seconds after video (which is perfectly ok for a mpeg/vob file).

in reply to:  19 comment:22 by streamingguy, 12 years ago

Replying to cehoyos:

Thank you for your reply cehoyos!

I will open the new ticket and provide my issue details. I tried with 2000000000 analyze duration and still can not get the audio in my output.

Thank you again for your time!

@streamingguy:
Why do you think an issue with a vob file that starts with a DVD menu before the actual content (and probably cannot be fixed without special DVD handling, see "DVD reader protocol" on ffmpeg-devel for a patch that may or may not help with the original problem) is related to a vob file with audio that starts late (which is perfectly legal in a vob file, ticket #598 contains a link to a vob sample with late starting subtitles)? Please open a new ticket, use ffmpeg -analyzeduration 2000000000 -i testclip.vob out.wav as command line.

in reply to:  20 comment:23 by streamingguy, 12 years ago

Replying to Aztek:

Hello Aztek,

Thank you for your reply! We are trying to encode for some commercial purpose and hence want to use the watermark/logo.

Thank you for clarifying about this bugtracker. I tried with many encoders from past 2 months and stuck with my encoding task. Hence, I thought of bumping it so that somebody will see it easily.

Thank you once again!

Good to hear mplayer did the trick.

About the decent encoder-thing search: AFAIK, mencoder and a lot of softwares are built on the top of ffmpeg. When you use mencoder, you basically use mplayer to dump audio/video stream and then use the embedded ffmpeg to encode to what you wants.

About the problem with your testclip: there might be no audio because audio stream might show up later in the file (your testclip is only ~1MB long, audio might begin at 6MB). Well, since you said mplayer -dumpstream did the trick, it's no problem anymore.

About the watermark: please keep in mind this is annoying to see. There is an how to there : http://www.idude.net/index.php/how-to-watermark-a-video-using-ffmpeg/

If you want to keep credit for a video, update metadata of your file: people won't bother to change it afterwards.

Offtopic: streamguy, a bugtracker is not a forum: folks receive e-mails each time you post something and post such as "Any update ?" are useless (you don't give any extra information). Saying that the method did not work IS an interesting extra piece of information. I understand that "bumping" might be tempting but, unlike forums, every open threads are reviewed once in a while. Don't take this wrong: it's great that you try to help to enhance the software by reporting bugs! I'm just telling you to be a bit patient.

Replying to streamingguy:

Hello Aztek,

When you get few minutes, could you please update version and component of this ticket? so that it will be addressed by corresponding people easily?

Thank you

comment:24 by Carl Eugen Hoyos, 11 years ago

Keywords: mpegps added
Resolution: needs_more_info
Status: openclosed

No sample was ever provided for the original problem.

comment:25 by Carl Eugen Hoyos, 11 years ago

It is possible that the original problem can be solved with "-probesize 2G -analyzeduration 2G".

comment:26 by Antonio Larrosa, 7 years ago

Just wanted to add that I encountered such a vob file too. In my case ffmpeg -i VTS_01_1.VOB says the file contains:

1 data track (dvd_nav_packet), 1 video track, 5 audio tracks and 17 subtitle tracks

while mediainfo says it contains:

1 video track and 5 audio tracks (same as ffmpeg) but 25 subtitle tracks.

When trying to check the tracks of VTS_01_2.VOB (or 3, 4 or 5), ffmpeg identified all 25 subtitle tracks just like mediainfo did.

As a curious note, I tried doing:

cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB VTS_01_5.VOB > full.vob
ffmpeg -i full.vob

And then ffmpeg only showed 1 data track, 1 video track and 5 audio tracks (that is, everything except any subtitle tracks).

I was about to report a bug when I noticed this old one that was closed 4 years ago with "needs_more_info" and the request to test with "-probesize 2G -analyzeduration 2G". So I tried that and it fixed the problem for me, so it probably also fixed it to the original reporter.

When doing:

ffmpeg -probesize 1G -analyzeduration 1G -i VTS_01_1.VOB

I got all expected data, video and audio tracks, and instead of 25 subtitle tracks I got 29 subtitle tracks. Even more than expected :).
I tried with the concatenated zzz.vob file and the 29 subtitle tracks were recognized there too.

Btw, I tested with different sizes and for example, with -probesize 400M -analyzeduration 400M, ffmpeg recognized 28 subtitle tracks, with 100M, 27 tracks and with 80M, only 4 tracks.

So, the problem was solved with those options. Anyway, if you still want a sample I can provide it.

comment:27 by Cigaes, 7 years ago

This is the normal behaviour for VOB files, since they do not have a global declaration of the available streams, streams must be discovered by reading the file until a packet is found; for subtitles it can happen very late.

Furthermore, you are wrong using the VTS_XX_Y.VOB files directly. These files contain several contents glued together, and can only be exploited by software aware of the DVD structure.

Note: See TracTickets for help on using tickets.