我使用此ffmpeg命令从DVD上的大型VOB文件中获取剪辑:
ffmpeg.exe -i E:\VTS_02_2.vob -ss 00:00:57 -t 00:16:15 vids\VTS_02_2.vob
它首先用于VOB文件,但后来我遇到了这些错误:
c:\ffmpeg>ffmpeg.exe -i E:\VTS_02_2.vob -ss 00:00:57 -t 00:16:15 vids\VTS_02_2.vob
FFmpeg version SVN-r15625, Copyright (c) 2000-2008 Fabrice Bellard, et al.
configuration: --enable-memalign-hack --enable-postproc --enable-swscale --enable-g
l --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libv
rbis --enable-libtheora --enable-libx264 --enable-libxvid --disable-ffserver --disabl
-vhook --enable-avisynth --enable-pthreads
libavutil 49.12. 0 / 49.12. 0
libavcodec 52. 0. 0 / 52. 0. 0
libavformat 52.22. 1 / 52.22. 1
libavdevice 52. 1. 0 / 52. 1. 0
libswscale 0. 6. 1 / 0. 6. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Oct 16 2008 05:40:02, gcc: 4.2.4 (TDM-1 for MinGW)
Input #0, mpeg, from 'E:\VTS_02_2.vob':
Duration: 00:17:11.61, start: 1031.828511, bitrate: 8326 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x576 [PAR 16:15 DAR 4:3], 9640
kb/s, 25.00 tb(r)
Stream #0.1[0x80]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
File 'vids\VTS_02_2.vob' already exists. Overwrite ? [y/N] y
Output #0, svcd, to 'vids\VTS_02_2.vob':
Stream #0.0: Video: mpeg2video, yuv420p, 720x576 [PAR 16:15 DAR 4:3], q=2-31, 200
kb/s, 25.00 tb(c)
Stream #0.1: Audio: mp2, 48000 Hz, stereo, s16, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop encoding
[ac3 @ 026D3990]frame sync error
Error while decoding stream #0.1
frame= 0 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbits/s
[mpeg2video @ 0141B780]ac-tex damaged at 40 2
[mpeg2video @ 0141B780]invalid mb type in B Frame at 3 12
[mpeg2video @ 0141B780]00 motion_type at 15 16
[mpeg2video @ 0141B780]mb incr damaged
[mpeg2video @ 0141B780]00 motion_type at 2 21
[mpeg2video @ 0141B780]00 motion_type at 44 22
[mpeg2video @ 0141B780]ac-tex damaged at 43 24
[mpeg2video @ 0141B780]Warning MVs not available
[mpeg2video @ 0141B780]concealing 765 DC, 765 AC, 765 MV errors
frame= 0 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbits/s
frame= 0 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbits/s
frame= 0 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbits/s
frame= 0 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbits/s
[mpeg2video @ 0141B780]ac-tex damaged at 5 9
[mpeg2video @ 0141B780]00 motion_type at 21 13
[mpeg2video @ 0141B780]ac-tex damaged at 1 20
[mpeg2video @ 0141B780]mb incr damaged
[mpeg2video @ 0141B780]00 motion_type at 30 30
[mpeg2video @ 0141B780]Warning MVs not available
[mpeg2video @ 0141B780]concealing 450 DC, 450 AC, 450 MV errors
[ac3 @ 026D3990]frame CRC mismatch
[ac3 @ 026D3990]incomplete frame
[ac3 @ 026D3990]invalid frame size
frame= 0 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbits/s
[mpeg2video @ 0141B780]00 motion_type at 38 15
[mpeg2video @ 0141B780]00 motion_type at 30 34
[mpeg2video @ 0141B780]Warning MVs not available
[mpeg2video @ 0141B780]concealing 254 DC, 254 AC, 254 MV errors
frame= 0 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbits/s
frame= 0 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbits/s
[mpeg2video @ 0141B780]ac-tex damaged at 7 6
[mpeg2video @ 0141B780]concealing 1350 DC, 1350 AC, 1350 MV errors
frame= 0 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbits/s
[ac3 @ 026D3990]incomplete frame
[ac3 @ 026D3990]invalid frame size
frame= 0 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbits/s
frame= 0 fps= 0 q=0.0 Lsize= 0kB time=10000000000.00 bitrate= 0.0kbits/s
video:0kB audio:0kB global headers:0kB muxing overhead -1.#IND00%
有没有办法强制ffmpeg给我一个输出?
答案 0 :(得分:3)
以[mpeg2video @ 0141B780]开头的行显示一般的解码错误。有时这些都不用担心,因为FFMPEG在这些错误之后成功地继续进行(错误可能仅适用于当前帧);它们可能代表用于编码信号源的编码器中的毛刺,甚至是传输错误。
尽管如此,关注的是其他行中的所有零:
frame= 0 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbits/s
似乎无法理解来源。 Media Info告诉你关于源VOB的内容是什么?
这个社区可能不太适合解决音频/视频编码问题 - 您尝试过doom9.org吗?您可能需要让某人为您查看源VOB的示例。
据推测,您正在使用ffmpeg的命令行版本,因为您想要自动执行此操作;如果没有,请注意AVIdemux等工具也可以在GUI中执行此操作。尽管它的名字,它可以复制MPEG而无需重新编码。