在ffmpeg中通过命令行添加字幕

废话

我试图通过批处理文件遍历我的所有文件夹,并在存在外部字幕文件的地方将它们合并到现有文件中。字幕可以是srt / sub / idx / etc等,基本上是任何格式。大多数语言是英语,但其他语言是少数。视频文件可以是MP4,MKV,AVI。(了解到ffmpeg可能不支持所有这些功能。)

我不想“烙印”字幕,我只是希望它们可用。

如果可能的话,我不想重新编码任何文件,只需添加字幕即可,所以我不需要单独的字幕文件。

我很高兴有人可以共享适当的语法命令行来执行此操作。

我基本上有(但是优雅)框架(批处理文件):

For /R %%A in (D:\Movies) Do (
If Exist %%~dpn.srt (
[awaiting ffmpeg CLI syntax]
Del %%~dpn.srt
)
For /R %%B in ("%%~dpn.*Eng.srt") Do (
[awaiting ffmpeg CLI syntax]
Del %%B
)
If Exist %%~dpn.*Ita.srt (
[awaiting ffmpeg CLI syntax]
Del %%~dpn.srt
)
For /R %%B in ("%%~dpn.*Ita.srt") Do (
[awaiting ffmpeg CLI syntax]
Del %%B
)
If Exist %%~dpn.sub (
[awaiting ffmpeg CLI syntax]
Del %%~dpn.srt
)
If Exist %%~dpn.idx (
[awaiting ffmpeg CLI syntax]
Del %%~dpn.srt
)
[repeat for each subtitle format]
)

我所缺少的是对CLI的简单明了的理解,即仅嵌入(而不是“烙印”)字幕,而无需对每个文件进行重新编码(或者,如果进行重新编码,则需要确保文件不被编码)显着增长)。

提前感谢您的帮助。

谢谢你。

用户名

有关同一任务的大量现有文章:

基本上,您只是使用-i和ffmpeg将两个文件都指定为输入,并且ffmpeg将创建一个组合文件,其中包含它找到的所有输入流。

请注意,并非所有容器都支持所有字幕类型,有些容器可能需要特殊选项。例如,如果要写入MP4文件,则需要-c:s mov_text将SUB / SRT转换为MP4的国际字幕格式。如果您有格式精美的SSA(.ass)字幕,则只能将它们添加到.mkv容器中。

为避免重新编码,请确保使用“复制”编解码器:-c:a copy-c:v copy还应避免提及任何提及“ hardsubs”的帖子;不要使用-vf

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法通过命令行添加源

通过ffmpeg在命令行或opencv中从IP摄像机捕获图像,得到灰色图像

如何通过命令行在Firefox中添加或删除书签标签?

如何通过命令行在XML文件的标记中添加属性?

是否可以通过命令行在视频中添加“淡化为黑色”效果?

通过命令行将GCP凭据添加到气流中

通过命令行在Sublime Text 3中添加程序包控件

是否可以在命令行中通过curl设置Content-Type而无需添加“ boundary = ------”?

如何通过Windows命令行在IIS中添加MIME类型

SourceSafe通过命令行将文件添加到特定项目目录中

如何通过命令行将条目永久添加到系统的PATH变量中?

如何通过命令行工具在Filebeats中动态添加字段?

ffmpeg:如何在一个命令行中从视频文件中提取第一视频,英语音频和法语字幕?

Exchange 2010无法通过命令行添加安全组

通过命令行添加动态依赖项

通过命令行向Jira添加新评论

无法通过命令行添加类路径

如何通过命令行添加ID3“封面”?

我可以在命令行中添加自己的命令吗?

ffmpeg命令通过命令行执行,但不通过PHP脚本执行

在命令行中将表情符号反应添加到命令行中

通过外壳脚本将“原始”命令行添加到bashrc中(不评估命令)

通过命令行确定多页 tiff 中的页数?

如何在python中通过命令行给元组

通过命令行覆盖PDF中的文本

在shell脚本中通过变量获取命令行参数

通过macOS中的命令行与Siri进行交互

在Linux中通过命令行截断表

无法通过命令行在MAMP中登录MySQL