ffmpeg - 我怎样才能插入一个空的字幕
问题描述
我有一堆 mp4 文件,我想将它们转换为 mkv,以便 vlc 的自动选择 auf 音频和字幕轨道起作用。问题是其中一些有 4 个字幕(第一个德语和英语只用于外语,然后是德语和英语),其中一些只有 2 个(因为在那些情节中没有外语)。我可以在它们之前插入 2 个空的字幕轨道,以便我可以将我的 vlc 设置为在观看它们时选择第一个或第二个字幕吗?
我用这样的 4 个字幕转换剧集:
ffmpeg -i in.mp4 -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 -map 0:5 -map 0:6 out.mkv
0:0 当然是视频
0:1 和 0:2 是音轨
剩下的就是字幕
顺便说一句:强制字幕有语言代码吗?-metadata:s:s:1 language=?
解决方案
制作“空”字幕。如果它完全是空的,你会得到Invalid data found when processing input
错误,所以添加没有实际字幕的时间。
示例empty.srt
:
1
00:00:00,000 --> 00:00:05,000
现在多路复用器:
ffmpeg -i input.mp4 -i empty.srt -map 0 -map 1 -map 1 -c copy output.mkv
推荐阅读
- excel - 如何根据列表重命名复制工作表?
- mysql - PHP MySQL查询以在数据库中查找最接近的匹配项
- tags - 如何在ui-select下复制标签文本
- jquery - 如何将“页面”动态传递给数据表中的 exportOptions>modifier
- json - 如何从带有转义字符的嵌套哈希中获取键值
- ios - 如何修复“字典文字包含重复键”?
- javascript - 如何通过 HTML 按钮显示 JavaScript 函数
- postgresql - 有没有一种简单的方法可以在 PostgreSQL 查询中使用变量?
- android - 在销毁 Activity 之前将数据传递给 Fragment
- php - 在 PHP 中合并两个多维数组