我正在使用MP4Box为视频添加字幕文件。以下命令可以从命令行完美运行:
c:/GPAC/MP4Box -add c:/test.m4v#audio -add c:/test.m4v#video -add c:/test_en.srt:hdlr=sbtl:lang=en:group=2:layer=-1 -new c:/test2.m4v
但是,我真正想要做的是将命令放入.bat文件中。以下是批处理文件中的命令:
%1/GPAC/MP4Box -add %2/%3#audio -add %2/%3#video %4 -new %2/%3
正如你所看到我试图传入“-add c:/test.m4v#video -add c:/test_en.srt:hdlr = sbtl:lang = en:group = 2:layer = -1”作为第四个参数。我想这样做的原因是可能会添加许多字幕文件:
“ - 添加c:/test.m4v#video -add c:/test_en.srt:hdlr = sbtl:lang = en:group = 2:layer = -1 -add c:/test.m4v#video - 添加c:/test_ja.srt:hdlr = sbtl:lang = ja:group = 2:layer = -1:disabled“
所以我不知道有多少-add命令需要,所以我想把它们全部作为一个参数传递。但是,mp4box不喜欢这个。
我不确定这是对mp4box的限制还是一般的批处理文件参数。
答案 0 :(得分:1)
我知道这是一个旧帖子,但对于将来搜索的人来说。
我在批处理文件中使用了以下方法,结合filemenu工具,允许使用简单的右键单击菜单功能来启动批处理过程:
for %%a in (*.m4v) do mp4box -add "%%~Na.eng.srt":lang=eng:layout=0x60x0x-1:group=2:hdlr="sbtl:tx3g" "%%a"
答案 1 :(得分:0)
每次我需要运行时,我都会通过编写/重写代码中的批处理文件来解决这个问题。所以我会用我的所有参数创建批处理文件。运行。然后删除该文件。这很有效。
答案 2 :(得分:0)
Windows上的批处理文件很古怪,功能有限。你可以做的是使用Cygwin,它允许你在Windows上使用真正的shell(比如Bash)。