[FFmpeg-user] Extract images from concatenate .VOB
Etienne Desautels
etienne.desautels at gmail.com
Fri Sep 11 20:58:08 CEST 2015
Hi,
I'm trying to extract images (frames) from some DVD. For this I think I need to concatenate multiple .VOB (like VTS_01_1.VOB, VTS_01_2.VOB) to be able to extract images that are in the second, third, etc. VOB. Unfortunately it looks it doesn't work when I put the seek (-ss) before the input, to do a fast extraction. I need to put the seek after the input for it to work, and this way, the extraction is really slow (all frames need to be uncompress until the seek time).
Here's my command that doesn't work:
ffmpeg -ss 00:10:39.638 -i concat:"iso/mountpoint/VIDEO_TS/VTS_01_1.VOB|iso/mountpoint/VIDEO_TS/VTS_01_2.VOB" -y -an -f image2 -vframes 1 frame1.jpg
And the output (check last line):
ffmpeg version 2.6.git Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
configuration: --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
libavutil 54. 22.100 / 54. 22.100
libavcodec 56. 33.100 / 56. 33.100
libavformat 56. 28.100 / 56. 28.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 13.101 / 5. 13.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, mpeg, from 'concat:iso/mountpoint/VIDEO_TS/VTS_01_1.VOB|iso/mountpoint/VIDEO_TS/VTS_01_2.VOB':
Duration: 00:00:01.09, start: 0.224800, bitrate: N/A
Stream #0:0[0x1bf]: Data: dvd_nav_packet
Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, smpte170m), 704x480 [SAR 10:11 DAR 4:3], max. 9586 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:2[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s
[swscaler @ 0x37d40c0] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to 'out16.jpg':
Metadata:
encoder : Lavf56.28.100
Stream #0:0: Video: mjpeg, yuvj420p(pc), 640x480 [SAR 615:616 DAR 205:154], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
Metadata:
encoder : Lavc56.33.100 mjpeg
Stream mapping:
Stream #0:1 -> #0:0 (mpeg2video (native) -> mjpeg (native))
Press [q] to stop, [?] for help
frame= 0 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
If I do that instead (putting the seek after the input) it works but it's pretty slow:
ffmpeg -i concat:"iso/mountpoint/VIDEO_TS/VTS_01_1.VOB|iso/mountpoint/VIDEO_TS/VTS_01_2.VOB" -ss 00:10:39.638 -y -an -f image2 -vframes 1 frame1.jpg
I notice also that duration reported by ffmpeg is wrong for many .VOB. Maybe it's related?
So, is there's any ways to extract accurately a frame from multiple .VOB in a fast way?
Regards,
Etienne Desautels
More information about the ffmpeg-user
mailing list