如何使用 ffmpeg 从 VOB 中提取 AVI

如何使用 ffmpeg 从 VOB 中提取 AVI

我正在尝试将 VOB 转换为 AVI。我之前使用 ffmpeg 从此 VOB 中翻录了一个 AVI,但不知为何这次没有成功。这是我尝试的方法:

ffmpeg -sameq -acodec copy -i VTS_01_2.VOB output.avi

这是我得到的输出:

FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
  built on Dec 29 2010 18:02:10 with gcc 4.2.1 (Apple Inc. build 5664)
  configuration: 
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.11. 0 /  0.11. 0
[mpeg2video @ 0x101014200]mpeg_decode_postinit() failure
    Last message repeated 6 times
Input #0, mpeg, from 'VTS_01_2.VOB':
  Duration: 26:30:29.20, start: 140.171311, bitrate: 90 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 DAR 16:9], 9800 kb/s, 31.44 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0xa0]: Audio: pcm_s16be, 48000 Hz, 2 channels, s16, 1536 kb/s
Output #0, avi, to 'output.avi':
  Metadata:
    ISFT            : Lavf52.64.2
    Stream #0.0: Video: mpeg4, yuv420p, 720x480 [PAR 32:27 DAR 16:9], q=2-31, 200 kb/s, 29.97 tbn, 29.97 tbc
    Stream #0.1: Audio: pcm_s16be, 48000 Hz, 2 channels, 1536 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Could not write header for output file #0 (incorrect codec parameters ?)

答案1

这是有效的:

ffmpeg -i VTS_01_2.VOB -ss 589 -t 274 -c:v mpeg4 -qscale:v 2 -c:a mp2 -b:a 320k output.avi

显然,指定音频编解码器就可以达到目的。

sameq不应使用,最好也明确指定视频编解码器和质量。

答案2

或者你可以使用手刹。它包装了 ffmpeg 并为您完成繁重的工作。它附带 CLI 版本,并具有针对最常见输出格式的内置预设。

相关内容