首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一批具有动态文件量的批中使用mkvmerge的Mux视频文件

在一批具有动态文件量的批中使用mkvmerge的Mux视频文件
EN

Stack Overflow用户
提问于 2020-07-01 19:10:57
回答 1查看 1.1K关注 0票数 1

每次需要屏蔽.mkv文件时,都会附带随机数量的字幕,每个字幕都是不同的语言代码。

例如,设想1:

代码语言:javascript
复制
video.mkv
eng.srt
fre.srt
ger.srt

设想2:

代码语言:javascript
复制
video.mkv
rus.srt
spa.srt

目标是每次运行相同的批处理文件,使其获取数量的字幕,并正确地用正确的语言代码,等等。

到目前为止我们已经到了这里

代码语言:javascript
复制
        EnableDelayedExpansion

        for %%A in ("*.srt") do (
            set subtitle=%%~nA
        )

        for %%A in ("*.mkv") do (
        mkvmerge.exe -o "%%~nA.mkv" --default-track 0:yes "%%A"^
        --language 0:!subtitle! --default-track 0:no "!subtitle!.srt"^
        --language 0:!subtitle! --default-track 0:no "!subtitle!.srt"^
        --language 0:!subtitle! --default-track 0:no "!subtitle!.srt"^
        )

到目前为止,这是固定数量的字幕方法,而不是动态的,例如场景1。它几乎可以工作,除非它把每个字幕作为最后一个变量,所以从场景1中,每个字幕被屏蔽了三次,并被命名为ger (语言)和ger.srt (所有三次都用作源),因为它是列表中的最后一个字母表。

目标:每个!subtitle!应该是正确的语言和字幕,正如我所理解的字母表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-02 06:23:03

我没有安装mkvmerge.exe,也没有阅读mkvmerge文档,因此不知道所提供的选项是否真的正确。

下面的批处理文件根据当前目录中的--language文件创建了包含可变数量的.srt--default-track选项的命令行。

代码语言:javascript
复制
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "SubtitleOptions="

setlocal EnableDelayedExpansion
for %%I in (*.srt) do set "SubtitleOptions=!SubtitleOptions! --language 0:%%~nI --default-track 0:no "%%I""
endlocal & set "SubtitleOptions=%SubtitleOptions%"

for %%I in (*.mkv) do mkvmerge.exe -o "%%I" --default-track 0:yes "%%I"%SubtitleOptions%
endlocal

请阅读这个答案获取有关命令、SETLOCAL、ENDLOCAL使用Windows批处理文件使用多条命令的单行的详细信息,以了解在ENDLOCAL命令行中使用的操作符&在批处理文件的初始环境中设置变量SubtitleOptions,延迟扩展时无法处理文件名中的.mkv文件的!

分配给环境变量SubtitleOptions的字符串总是以空格字符开头(如果定义的话),这就是为什么%SubtitleOptions%直接在命令行执行mkvmerge.exe之后出现的原因。

要了解所使用的命令及其工作方式,请打开一个命令提示符窗口,在那里执行以下命令,并非常仔细地读取为每个命令显示的所有帮助页。

  • echo /?
  • endlocal /?
  • for /?
  • set /?
  • setlocal /?
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62683851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档