2

我使用这个 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 只给我一个输出?

4

1 回答 1

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 而无需重新编码。

于 2009-03-04T15:36:57.007 回答