Добавление субтитров из командной строки MP4Box - PullRequest
0 голосов
/ 24 января 2012

Я добавляю файл субтитров к видео, используя 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 -адд c: /test.m4v#video -add c: /test_ja.srt: hdlr = sbtl: lang = ja: group = 2: layer = -1: отключен "

поэтому я не знаю заранее, сколько должно быть команд -add, поэтому я хочу просто передать их все в качестве одного параметра.Но mp4box это не нравится.

Я не уверен, является ли это ограничением для mp4box или для параметров пакетного файла в целом.

Ответы [ 3 ]

1 голос
/ 01 декабря 2013

Я знаю, что это старая тема, но для тех, кто ищет в будущем.

Я использовал следующий подход в пакетном файле в сочетании с инструментами файлового меню, чтобы позволить простой функции меню, вызываемой правой кнопкой мыши, инициировать пакетный процесс:

for %%a in (*.m4v) do mp4box -add "%%~Na.eng.srt":lang=eng:layout=0x60x0x-1:group=2:hdlr="sbtl:tx3g" "%%a"
0 голосов
/ 23 июня 2012

Пакетные файлы в Windows причудливы и имеют ограниченную функциональность. Что вы можете сделать, это использовать Cygwin , что позволяет вам использовать настоящую оболочку (например, Bash) в Windows.

0 голосов
/ 24 января 2012

Я решил эту проблему, записывая / переписывая командный файл из кода каждый раз, когда мне нужно было его запустить.Так что я бы создал командный файл со всеми моими аргументами.Запустить его.Затем удалите файл.Это отлично сработало.

...