[FFmpeg-user] VOB files convertion failed
Micael Silva
micaelsilva at gmail.com
Wed May 9 22:00:38 EEST 2018
On Wed, May 9, 2018 at 2:53 AM, Jamenson Ferreira Espindula de Almeida Melo
<jafesp at gmail.com> wrote:
> > Concating VOB files usually goes wrong caused by timecode discontinuities
> > by the file splitting, I think. You could try to make one single file
> first
> > with ffmpeg regenerating PTS before converting to another format. It
> > generally works for me:
> >
> > ffmpeg -fflags +genpts -i
> > "concat:vts_01_0.vob|vts_01_1.vob|vts_01_2.vob(....)" -c copy -f vob
> > filme.mpg
> >
> > I am not completely sure but the video_ts.vob carries the DVD menu, it
> can
> > be messy putting it among the rest of video, since than menus don't have
> to
> > be at same properties of the movie file.
>
> Hi, Micael Silva.
>
> I tried the command you sugested. The command was:
>
>
> ffmpeg -analyzeduration 500M -probesize 500M -fflags +genpts -i
> "concat:../vob/vts_01_0.vob|../vob/vts_01_1.vob|../vob/vts_
> 01_2.vob|../vob/vts_01_3.vob|../vob/vts_01_4.vob|../vob/vts_
> 02_0.vob|../vob/vts_02_1.vob|../vob/vts_03_1.vob|../vob/vts_
> 04_1.vob|../vob/vts_05_1.vob"
> -map 0:1 -map 0:2? -map 0:3? -map 0:4? -map 0:5? -metadata:s:a:0
> language=eng -metadata:s:a:0 title="English stereo" -metadata:s:a:1
> language=por -metadata:s:a:1 title="Português estéreo" -metadata:s:s:0
> language=eng -metadata:s:s:0 title="English" -metadata:s:s:1
> language=por -metadata:s:s:1 title="Português" -codec:v copy -codec:a
> copy -codec:s copy -f vob crepusculo.mp4
>
>
> The output os that command was:
>
>
> ffmpeg version 3.3.3 Copyright (c) 2000-2017 the FFmpeg developers
> built with gcc 7.2.0 (GCC)
> configuration: --prefix=/usr --enable-gpl --enable-version3 \
> --enable-nonfree --disable-static --enable-shared --disable-debug \
> --enable-libass --enable-libfdk-aac --enable-libfreetype \
> --enable-libmp3lame --enable-libopus --enable-libtheora \
> --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 \
> --enable-openssl --docdir=/usr/share/doc/ffmpeg-3.3.3
>
> libavutil 55. 58.100 / 55. 58.100
> libavcodec 57. 89.100 / 57. 89.100
> libavformat 57. 71.100 / 57. 71.100
> libavdevice 57. 6.100 / 57. 6.100
> libavfilter 6. 82.100 / 6. 82.100
> libswscale 4. 6.100 / 4. 6.100
> libswresample 2. 7.100 / 2. 7.100
> libpostproc 54. 5.100 / 54. 5.100
> Input #0, mpeg, from \
> 'concat:../vob/vts_01_0.vob|../vob/vts_01_1.vob|../vob/vts_
> 01_2.vob|../vob/vts_01_3.vob|../vob/vts_01_4.vob|../vob/vts_
> 02_0.vob|../vob/vts_02_1.vob|../vob/vts_03_1.vob|../vob/vts_
> 04_1.vob|../vob/vts_05_1.vob':
>
> Duration: 00:01:43.71, start: 0.280633, bitrate: 347385 kb/s
> Stream #0:0[0x1bf]: Data: dvd_nav_packet
> Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top \
> first), 720x480 [SAR 32:27 DAR 16:9], 29.97 fps, 29.97 tbr, 90k \
> tbn, 59.94 tbc
>
> Stream #0:2[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
> Stream #0:3[0x20]: Subtitle: dvd_subtitle
> Stream #0:4[0x21]: Subtitle: dvd_subtitle
> Stream #0:5[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
> [vob @ 0x18c5ac0] VBV buffer size not set, using default size of 130KB
> If you want the mpeg file to be compliant to some specification
> Like DVD, VCD or others, make sure you set the correct buffer size
> Output #0, vob, to 'crepusculo.mp4':
> Metadata:
> encoder : Lavf57.71.100
> Stream #0:0: Video: mpeg2video (Main), yuv420p(tv, top first), \
> 720x480 [SAR 32:27 DAR 16:9], q=2-31, 29.97 fps, 29.97 tbr, 90k \
> tbn, 29.97 tbc
>
> Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
> Metadata:
> title : English stereo
> Stream #0:2(eng): Subtitle: dvd_subtitle
> Metadata:
> title : English
> Stream #0:3(por): Subtitle: dvd_subtitle
> Metadata:
> title : Português
> Stream #0:4(por): Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
> Metadata:
> title : Português estéreo
> Stream mapping:
> Stream #0:1 -> #0:0 (copy)
> Stream #0:2 -> #0:1 (copy)
> Stream #0:3 -> #0:2 (copy)
> Stream #0:4 -> #0:3 (copy)
> Stream #0:5 -> #0:4 (copy)
> Press [q] to stop, [?] for help
> frame= 7068 fps= 10 q=-1.0 size= 0kB time=00:03:55.76 bitrate= \
> 0.0kbits/s speed=0.348x
>
> [vob @ 0x18c5ac0] Application provided invalid, non monotonically \
> increasing dts to muxer in stream 2: 17129112 >= 16543527
>
> av_interleaved_write_frame(): Invalid argument
> frame= 7069 fps=9.6 q=-1.0 Lsize= 181704kB time=00:03:55.81 \
> bitrate=6312.2kbits/s speed=0.319x
>
> video:174046kB audio:5395kB subtitle:22kB other streams:0kB global \
> headers:0kB muxing overhead: 1.249032%
>
> Conversion failed!
>
>
> Any idea?
>
> Thank you in advance.
>
> God bless you!
>
> Jamenson Ferreira Espindula de Almeida Melo
> GNU/Linux user # 166197
> https://linuxcounter.net/cert/166197.png
>
>
As Zak explained, the DVD format it's a kinda of complex to deal with
ffmpeg alone, concatenating. I prefer to use mplayer to dump it to file
before using ffmpeg. I use:
mplayer -dumpstream dvd://3 -nocache -dvd-device /path/to/VIDEO_TS
-dumpfile output-file.mpg
Where the number after dvd:// means the title to be dumped. After that i
have no issues converting.
More information about the ffmpeg-user
mailing list