ffmpeg添加新的srt并删除旧的

ffmpeg添加新的srt并删除旧的

我正在努力寻找一行命令来合并新字幕并从视频文件中删除现有字幕。

例子:

test1.mkv(已经包含软编码的子文件,不需要它们)

test1.srt(仅我想要在视频上显示的字幕)

在 ubuntu 服务器 18.04 LTS 64 位下工作

有什么帮助吗?

解决方案更新;

mkvmerge -o 输出.mkv -S 1.mkv --语言 0:hrv --子字符集 0:utf-8 1.srt

这将完成工作

答案1

您必须映射新字幕并仅映射原始文件中的其他流。

例如

ffmpeg -i test1.mkv -i test1.srt -c copy -map 0 -map -0:s -map 1 new.mkv

-map 0映射原始文件中的所有流,包括字幕。-map -0:s删除字幕映射。-map 1映射来自第二个输入 (test1.srt) 的所有流。所有映射的流都复制到 new.mkv

答案2

我会推荐使用mkvtoolnix

ubuntu 的包退出https://packages.ubuntu.com/bionic/mkvtoolnix

通过 和 的正确组合mkvextractmkvmerge 您可以做您想做的事。

您将使用它mkvinfo来显示有关您的文件的信息。

安装 ...

apt-get install mkvtoolnix

查看命令列表

dpkg -L mkvtoolnix | grep bin

并阅读man mkvmergeman mkvextract

相关内容