ffmpeg将DVD视频合并转换为mp4格式
以前有保存一个演唱会的DVD原盘文件,格式为.ISO
格式,如今DVD已经完全淘汰,画质体积也完全跟不上现在的视频,现在准备将其转制为mp4
格式,方便播放。
一、挂载光盘文件
我的两张光盘文件存放在/var/storage/Music/chou
下面,文件名为001.ISO
和002.ISO
,此处只写出001.ISO
的操作步骤。
首先创建/mnt/cd1
目录,然后用如下命令挂载光盘:
# 以只读模式挂载 sudo mount -o ro /mnt/cd1 /var/storage/Music/chou/001.ISO
查看/mnt/cd1/VIDEO_TS
下视频文件:
通过文件大小可以看出,真正的视频文件为VTS_02_*.VOB
这些文件。
二、合并文件
操作命令如下:
# 进入视频所在目录 cd /mnt/cd1/VIDEO_TS # 合并视频文件 cat VTS_02_1.VOB VTS_02_2.VOB VTS_02_3.VOB VTS_02_4.VOB VTS_02_5.VOB > /var/storage/Music/chou/001.vob
合并后的文件保存在/var/storage/Music/chou
目录下。
三、转换文件
先进入到视频保存目录,然后查看文件信息:
可以看出,该文件中,音轨有3条,此处我只提取一条。
命令:
# 提取一条音轨 ffmpeg -i 001.vob -map v:0:1 -vcodec h264 -map a:0:2 -acodec copy -crf 20 -strict experimental 01.mp4 # 提取全部音轨 ffmpeg -i 001.vob -map 0:v -vcodec h264 -map 0:a -acodec copy -crf 23 -strict experimental 001.mp4
-i
:输入文件
-map v:0:1
: 视频轨道所在的索引
-vcodec h264
:以h264编码转换视频流
-map v:0:2
:选取其中一条音轨
-vcodec copy
:此处我直接复制音轨不进行转换,如果需要转换可以将copy换为编码器,如 aac
-crf 20
:这个参数的取值范围为0~51,其中0为无损模式,数值越大,画质越差,生成的文件却越小。从主观上讲,18~28是一个合理的范围。18被认为是视觉无损的(从技术角度上看当然还是有损的),它的输出视频质量和输入视频相当。
-strict experimental
:您还需要指定-strict experimental,否则您可能会得到:“编码器’aac’是实验性的,但实验编解码器未启用,如果要使用它,请添加’-strict -2
’。
-ac 2
:2声道立体声
-ab 192k
:声音转换码率, 码率越高体积越大
其它未设置的参数,会默认和源文件一致
四、转换效果
DVD画质现在来看本来就惨不忍睹,主要是要保留下音质。
参考1:《FFMPEG将flv转换为mp4,而不会损失质量》
参考2:《FFmpeg视频转码技巧之-crf参数(H.264篇)》
除非注明,戊辰人博客文章均为原创,转载请以链接形式标明本文地址