介绍一下合并DVD的多个VOB文件,转h264,反交错,调整分辨率
ffmpeg吧
全部回复
仅看楼主
level 8
meoow 楼主
只用一条命令即可
ffmpeg -i 1.VOB -i 2.VOB -i 3.VOB -i 4.VOB -lavfi '[0:v][0:a][1:v][1:a][2:v][2:a][3:v][3:a]concat=n=4:v=1:a=1[v0][a0];[v0]yadif,scale=iw:iw/dar:flags=lanczos,pad=iw:ih+(16-mod(ih\,16)):0:(oh-ih)/2,setsar=1[v3]' -map '[v3]' -map '[a0]' -c:v libx264 -threads 16 -crf 21 -qcomp 0.75 -preset veryslow -c:a aac -strict -2 -b:a 192k -ar 44100 -f mp4 -y video.mp4
解释:
假设4个VOB文件,使用ffmpeg的complex_filter(复杂滤镜)的concat滤镜进行链接,[0:v][0:a][1:v][1:a][2:v][2:a][3:v]分别对应4个输入文件的视频和音频,通过concat滤镜,提供参数,共有4个文件,一个视频流,一个音频流。将视频流标记为[v0],将音频流标记为[a0]。
再将[v0]流通过一系列的滤镜,
首先yadif反交错,
然后用scale对通过的DAR调整分辨率,因为有些播放器会读取SAR而不是DAR,导致会以原始的720x480分辨率播放,画面比例会变形。
然后用pad滤镜,由于调整了视频的高度,所以使用pad对上下添加黑边使其是16的整数倍。
然后用map将[v3]流映射到输出流的0,[a0]映射到输出流的1
然后用setsar设置SAR,因为修改了分辨率所以以SAR为基准,让DAR自动计算,SAR设置为1:1
然后就是视频(x264)以及音频(aac)编码器的指定以及其参数了
最近的版本开始aac的编码器官方已经开始正式推荐自带的aac编码器了,与fdkaac, faac, 相比较,自带编码器的质量是最好的。
2016年02月01日 04点02分 1
level 8
meoow 楼主
因为最近翻出老DVD,所以想抓取转换一下收藏。
写了转换参数,就顺便发到这里跟大家分享一下
2016年02月01日 04点02分 2
level 8
meoow 楼主
有些文件标记了交错,但实际却没有任何交错帧,比较可恶。
直接用mediainfo查看不靠谱,只能手动用ffmpeg 的idef滤镜跑一遍才行
2016年02月01日 04点02分 3
写错了, 是idet
2016年02月01日 04点02分
level 1
@meoow 谢谢楼主 刚试了一下 我的ffmpeg要去掉那些单引号才能运行
ffmpeg -i VTS_01_1.VOB -i VTS_01_2.VOB -i VTS_01_3.VOB -i VTS_01_4.VOB -i VTS_01_5.VOB -lavfi [0:v][0:a][1:v][1:a][2:v][2:a][3:v][3:a][4:v][4:a]concat=n=5:v=1:a=1[v0][a0];[v0]yadif,scale=iw:iw/dar:flags=lanczos,pad=iw:ih+(16-mod(ih\,16)):0:(oh-ih)/2,setsar=1[v4] -map [v4] -map [a0] -c:v libx264 -threads 16 -crf 21 -qcomp 0.75 -preset veryslow -c:a aac -strict -2 -b:a 192k -ar 44100 -f mp4 -y video.mp4
2016年05月05日 03点05分 5
字幕怎么办? [哈哈]
2016年06月05日 15点06分
@string2728 确实如层主所说需要去掉那些引号才能正确运行!但官方文档的例子也是有那些引号的,不知道是否Linux平台下的命令。
2016年10月15日 21点10分
level 4
正解 是用 makemkv 去 轉出 mkv
等於合併 all vob, 再依章節 extract 成 mkv,單檔mkv (算是無損)也是可以的
之後 再拿mkv 壓製 會比較正統些
2017年06月29日 04点06分 7
非常好。
2023年08月11日 23点08分
1