On Mon, May 7, 2018 at 9:13 PM, Jamenson Ferreira Espindula de Almeida Melo <[email protected]> wrote:
> From Jaboatão dos Guararapes, Pernambuco, Brazil. > > Thank you for your response. > > Below is the listing of a DVD movie disc. I want to convert these files > to one file. The files already are on my hard disk. > > total 4,2G > -r--r--r-- 1 jamenson jamenson 124K fev 2 2010 video_ts.vob > -r--r--r-- 1 jamenson jamenson 320M fev 2 2010 vts_01_0.vob > -r--r--r-- 1 jamenson jamenson 1,0G fev 2 2010 vts_01_1.vob > -r--r--r-- 1 jamenson jamenson 1,0G fev 2 2010 vts_01_2.vob > -r--r--r-- 1 jamenson jamenson 1,0G fev 2 2010 vts_01_3.vob > -r--r--r-- 1 jamenson jamenson 735M fev 2 2010 vts_01_4.vob > -r--r--r-- 1 jamenson jamenson 11M fev 2 2010 vts_02_0.vob > -r--r--r-- 1 jamenson jamenson 8,0K fev 2 2010 vts_02_1.vob > -r--r--r-- 1 jamenson jamenson 8,0K fev 2 2010 vts_03_1.vob > -r--r--r-- 1 jamenson jamenson 159M fev 2 2010 vts_04_1.vob > -r--r--r-- 1 jamenson jamenson 8,0K fev 2 2010 vts_05_1.vob > > So, first of all, I concatenate the eleven files to one file with this > command: > > > cat *vob > crepusculo.vob > > > Second I have analyze the contents of that file with this command: > > > ffprobe -hide_banner -analyzeduration 500M -probesize 500M -i \ > crepusculo.vob > > > The output of that command was: > > > Input #0, mpeg, from '/tmp/crepusculo.vob': > Duration: 00:01:43.71, start: 0.280633, bitrate: 347394 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], 8000 kb/s, 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 > Unsupported codec with id 100357 for input stream 0 > > > ffmpeg -version output: > > > 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 > > > First try: I tried the Matroska container. Below is the command: > > > ffmpeg -analyzeduration 500M -probesize 500M -i crepusculo.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 estereo" \ > -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 -crf 20 -codec:a copy -qscale:a 2 -codec:s copy \ > crepusculo.mkv > > > The command output 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 'crepusculo.vob': > Duration: 00:01:43.71, start: 0.280633, bitrate: 347394 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], 8000 kb/s, 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 > Output #0, matroska, to 'crepusculo.mkv': > Metadata: > encoder : Lavf57.71.100 > Stream #0:0: Video: mpeg2video (Main) (mpg2 / 0x3267706D), \ > yuv420p(tv, top first), 720x480 [SAR 32:27 DAR 16:9], q=2-31, 8000 \ > kb/s, 29.97 fps, 29.97 tbr, 1k tbn, 90k tbc > > Stream #0:1(eng): Audio: ac3 ([0] [0][0] / 0x2000), 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 ([0] [0][0] / 0x2000), 48000 Hz, \ > 5.1(side), fltp, 448 kb/s > > Metadata: > title : Português estereo > 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 > [matroska @ 0xd5a240] Non-monotonous DTS in output stream 0:0; \ > previous: 16, current: -33; changing to 16. This may result in \ > incorrect timestamps in the output file. > > [matroska @ 0xd5a240] Non-monotonous DTS in output stream 0:0; \ > previous: 16, current: 0; changing to 16. This may result in \ > incorrect timestamps in the output file. > > [matroska @ 0xd5a240] Timestamps are unset in a packet for \ > stream 0. This is deprecated and will stop working in the \ > future. Fix your code to set the timestamps properly > > [matroska @ 0xd5a240] Can't write packet with unknown timestamp > av_interleaved_write_frame(): Invalid argument > > [matroska @ 0xd5a240] Can't write packet with unknown timestamp > Error writing trailer of crepusculo.mkv: Invalid argument > > frame= 305 fps=0.0 q=-1.0 Lsize= 231kB time=00:00:10.07 \ > bitrate= 187.4kbits/s speed= 321x > > video:6008kB audio:154kB subtitle:0kB other streams:0kB global \ > headers:0kB muxing overhead: unknown > Conversion failed! > > > Second try: I tried to change the container to mp4. The command line > looks like this: > > > ffmpeg -analyzeduration 500M -probesize 500M -i crepusculo.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 estereo" \ > -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 -crf 20 -codec:a copy -qscale:a 2 -codec:s copy \ > crepusculo.mp4 > > > The command output 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 'crepusculo.vob': > Duration: 00:01:43.71, start: 0.280633, bitrate: 347394 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], 8000 kb/s, 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 > [mp4 @ 0x1079240] track 1: codec frame size is not set > [mp4 @ 0x1079240] track 4: codec frame size is not set > Output #0, mp4, to 'crepusculo.mp4': > Metadata: > encoder : Lavf57.71.100 > Stream #0:0: Video: mpeg2video (Main) (a[0][0][0] / 0x0061), \ > yuv420p(tv, top first), 720x480 [SAR 32:27 DAR 16:9], q=2-31, 8000 \ > kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 90k tbc > > Stream #0:1(eng): Audio: ac3 ([165][0][0][0] / 0x00A5), 48000 Hz, \ > 5.1(side), fltp, 448 kb/s > > Metadata: > title : English stereo > Stream #0:2(eng): Subtitle: dvd_subtitle ([224][0][0][0] / 0x00E0) > Metadata: > title : English > Stream #0:3(por): Subtitle: dvd_subtitle ([224][0][0][0] / 0x00E0) > Metadata: > title : Português > Stream #0:4(por): Audio: ac3 ([165][0][0][0] / 0x00A5), 48000 Hz, \ > 5.1(side), fltp, 448 kb/s > > Metadata: > title : Português estereo > 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 > [mp4 @ 0x1079240] Non-monotonous DTS in output stream 0:0; previous: \ > 1447, current: -3003; changing to 1448. This may result in incorrect \ > timestamps in the output file. > > [mp4 @ 0x1079240] Non-monotonous DTS in output stream 0:0; previous: \ > 1448, current: 0; changing to 1449. This may result in incorrect \ > timestamps in the output file. > > [mp4 @ 0x1079240] Timestamps are unset in a packet for stream 0. This \ > is deprecated and will stop working in the future. Fix your code to \ > set the timestamps properly > > [mp4 @ 0x1079240] pts has no value > Last message repeated 648 times > frame= 2722 fps=0.0 q=-1.0 size= 61241kB time=00:01:30.72 \ > bitrate=5529.9kbits/s speed= 181x > [mp4 @ 0x1079240] pts has no \ > value > > Last message repeated 655 times > frame= 5180 fps=5179 q=-1.0 size= 123840kB time=00:02:52.73 \ > bitrate=5873.0kbits/s speed= 173x > [mp4 @ 0x1079240] pts has no \ > value > > Last message repeated 503 times > [mp4 @ 0x1079240] Application provided invalid, non monotonically \ > increasing dts to muxer in stream 2: 17129112 >= 16543527 > > av_interleaved_write_frame(): Invalid argument > [mp4 @ 0x1079240] pts has no value > Last message repeated 79 times > frame= 7070 fps=5123 q=-1.0 Lsize= 179654kB time=00:03:55.81 \ > bitrate=6241.0kbits/s speed= 171x > > video:174140kB audio:5395kB subtitle:22kB other streams:0kB global \ > headers:0kB muxing overhead: 0.054197% > Conversion failed! > > > What I should do to solve that? > > Thank you. > 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. _______________________________________________ ffmpeg-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
