我正在尝试将从DVD复制的VOB文件转换为Ubuntu 13.10中的avi。我尝试了dvdrip
,但由于帧计数错误或其他原因而失败。我也尝试过acidrip,但是它总是选择我不想使用的音轨。我希望有一个命令行解决方案来创建具有以下功能的avi:
- 可与mplayer一起使用(即使用步进功能)
- 带有所需的字幕(或完全没有字幕)
- 具有正确的音轨
- 视频和音频同步
我尝试了一些ffmpeg
与avconv
命令和管理,以创建一个avi,但视频和音频是完全地不同步。那么,应该使用哪些选项将VOB文件转换为avi文件?
我希望您对建议的选项进行一些解释!
附加信息:
该
ffmpeg
命令为输入文件提供以下输出Input #0, mpeg, from 'Videos/Test/VIDEO_TS/VTS_01_1.VOB': Duration: 00:04:53.32, start: 0.045500, bitrate: 29284 kb/s Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 7500 kb/s, 27.68 fps, 59.94 tbr, 90k tbn, 59.94 tbc Stream #0.1[0x82]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s Stream #0.2[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s Stream #0.3[0x81]: Audio: ac3, 0 channels [buffer @ 0x15ca6e0] w:720 h:480 pixfmt:yuv420p
以下命令
ffmpeg -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -ss 589 -t 274 -sameq -acodec copy -ab 320k output.avi
例如导致我的Ubuntu会话崩溃。
以下命令
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy output.avi
例如导致以下错误:
Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument
以下命令
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k output.avi
例如导致以下错误:
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
以下命令
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a ac3 -b:a 128k output.avi
例如,似乎可以在某些帧上工作。但是很快我遇到了许多形式的错误
[ac3 @ 0x120d480] frame sync error Error while decoding stream #0:1 frame CRC mismatch
以下命令
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avi
进行了一些转换,但是(i)虽然我不想使用字幕,但仍在使用字幕(ii)音频错误(音频和视频放置严重错误),并且(iii)似乎比电影的实际播放速度慢(可能需要90分钟的电影需要2个小时)。
我试图命令给定这里(Xeratul的第三篇文章),但由于错误而停止
FATAL: Cannot initialize video driver.
我尝试了以下建议,以查看Mencoder页面。该页面建议使用两次通过:
第一个读取有关电影的信息,第二个使用该信息进行编码。
但没有说明在第二遍中要提取哪些信息以及如何使用它们。因此,我使用了以下命令:
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -nosound -ovc x264 \ -x264encopts direct=auto:pass=2:bitrate=900:frameref=5:bframes=1:\ me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \ -vf scale=-1:-10,harddup -o video.avi
确实可以转换视频,但带有不需要的字幕。完全不清楚如何避免使用字幕。
avconv
然后将VOB文件转换为avi。该命令avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy test.avi
给出了一个错误Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument
...
avconv -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi
尝试此操作
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
mencoder yourvob -oac copy -ovc x264 -x264encopts pass=1:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o /dev/null
然后尝试mencoder yourvob -oac copy -ovc x264 -x264encopts pass=2:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o video.avi
-从Arch文档@ dg99链接中获取部分内容。
ffmpeg
自很久以前就已弃用,您应该使用它自己的后继者:avconv
。