ffpmeg相对无损转换mkv到mp4,保留标签、封面等元数据

文章讲述了如何使用ffmpeg进行MKV到MP4的无损转换,强调了视频流和音频流的直接拷贝,并提到原始命令会丢失标签、章节和封面图。通过提取并重新导入元数据,可以解决这一问题,但mp4不支持mkv的所有格式,如wav音频,且导入的metadata.txt会丢失部分信息。解决方案中关键参数为-map0,以保留封面图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其实这个无损是相对无损,不是绝对无损

因为mkv封装支持的格式、标签等是比mp4封装要多的

比如mkv可以封装wav音频,mp4不能封装wav音频

所以这里的无损的前提是该mkv的媒体流、标签(TAG)、封面图等,都是Mp4本身支持的

才能无损转换

我以前长期使用一个bat

ffmpeg.exe -i "%~1" -vcodec copy -acodec copy "%~dpn1".mp4

这个命令就是无损转换mkv到mp4的,其中的-vcodec copy为视频流直接拷贝, -acodec copy是音频流直接拷贝

不过这个命令有一个很大的缺点,那就是仅仅拷贝视频流、音频流,但是标签、章节、封面图等会丢失

所以后面做了一个改进

rem 首先提取元数据到metadata.txt

bin\ffmpeg -i "%~1" -f ffmetadata -y metadata.txt

rem 然后把metadata.txt元数据作为输入源进行添加

bin\ffmpeg.exe -i "%~1" -i metadata.txt -map 0 -vcodec copy -acodec copy -y "%~dpn1".mp4

这里很重要的一个参数是-map 0(意思是把视频流映射为第0个媒体流)这个代码绝对不能少,不进行map的话,会导致封面图丢失,我之前就是因为没有加-map 0导致封面图丢失,困扰了我很久,结果一个小小的代码就解决了

这里要说明的是因为mkv和mp4本身有差异,mp4无法导入mkv的xml文件,只能退而求其次通过先导出metadata.txt的方法再导入,metadata.txt里面包含的信息并不完全,会丢失专辑名和年份信息.不过艺术家、标题等会被保留.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值