How to split multiple videos from a single VOB file?

1

A VOB (Video Object) file is a DVD media extension which can hold multiple videos. How can I split these videos from a single VOB file to multiple MP4 (or other extensions) files on Windows platform? I tried some sort of splitter but they could detect only first video.

I also tried FFMPEG with the parameters, ffmpeg -1 input.vob output.mp4 but at the end, the single VOB file fully converted to MP4 without splitting or part losing and the mp4 file is now altogether. and the incomplete result of ffmpeg -i input.vob is:

ffmpeg version N-66289-gb76d613 Copyright (c) 2000-2014 the FFmpeg developers built on Sep 15 2014 22:02:10 with gcc 4.8.3 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-lib
modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw
b --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinge
r --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --en
able-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-
libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 4.101 / 56. 4.101
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 1.100 / 5. 1.100
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
Input #0, mpeg, from 'TheFile.VOB':
Duration: 00:03:45.79, start: 0.224478, bitrate: 6197 kb/s
Stream #0:0[0x1bf]: Data: dvd_nav_packet
Stream #0:1[0x1e0]: Video: mpeg1video, yuv420p(tv), 352x240 [SAR 49:33 DAR 9
8:45], 1150 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 29.97 tbc
Stream #0:2[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16p, 224 kb/s
At least one output file must be specified

Amirreza Nasiri

Posted 2014-09-15T16:23:40.520

Reputation: 2 418

Have you tried Handbrake? – Marcelo – 2014-09-15T16:27:56.240

@Marcelo No, I should try that :) i'll write the result. – Amirreza Nasiri – 2014-09-15T16:28:53.337

If you split to a codec other than what the source used, conversion WILL be required, and conversion requires either quality loss or increased file size. If you split to the same codec as the source conversion may or may not be required depending on the program used. Just something to keep in mind. – Robin Hood – 2014-09-15T19:28:30.547

Hm. I'm afraid ffmpeg can't identify the chapters in the VOB. Perhaps mplayer can? I can't help any further now, unfortunately. – slhck – 2014-09-16T10:58:43.270

Answers

2

With ffmpeg you can use the segment muxer:

ffmpeg -i in.vob -c:v libx264 -c:a aac -strict experimental -b:a 192k \
-map 0:v:0 -map 0:a:0 -f segment -segment_times 1,2,3,5,8,13,21 out%03d.mp4

Here, the -segment_times option gives the individual durations of the segments in seconds. Use a single -segment_time 5 instead for creating segments of same duration.

The -map 0:v:0 says, take the first video stream (v:0) of the first input file (0:). Same goes for audio. You need to change the v:0 to v:2 to get the third video stream, for example.

Check the H.264 encoding guide for more options regarding quality.

The \ continues the command in Linux shells. YMMV for Windows.

slhck

Posted 2014-09-15T16:23:40.520

Reputation: 182 472

The problem is that the full duration of the VOB file is not visible. i used VLC and KMPlayer but both of them show time of the video which is on. for example, our VOB file contains 3 videos with 1, 3, 5 minute durations so our file will be 9 minutes. the players while playing the second video (which starts from one and ends on fifth minute), just show the duration of the video (from 0 second ro 1 minute). so it's not possible for me to guess exact time to split as segments. – Amirreza Nasiri – 2014-09-16T08:23:39.943