0

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」を 4 番目として渡そうとしています。パラメータ。これを行いたい理由は、多くの字幕ファイルが追加されている可能性があるためです。

"-c:/test.m4v#video を追加 -c:/test_en.srt:hdlr=sbtl:lang=en:group=2:layer=-1 を追加 -c:/test.m4v#video を追加 -c: を追加/test_ja.srt:hdlr=sbtl:lang=ja:group=2:layer=-1:無効"

そのため、必要な -add コマンドの数が事前にわからないので、それらすべてを 1 つのパラメーターとして渡したいだけです。しかし、mp4box はこれを好みません。

これが mp4box の制限なのか、一般的なバッチ ファイル パラメータの制限なのかはわかりません。

4

3 に答える 3

1

これは古いスレッドであることは知っていますが、将来検索する人にとっては.

バッチ ファイルで次のアプローチを使用し、filemenu ツールと組み合わせて、単純な右クリック メニュー機能でバッチ プロセスを開始できるようにしました。

for %%a in (*.m4v) do mp4box -add "%%~Na.eng.srt":lang=eng:layout=0x60x0x-1:group=2:hdlr="sbtl:tx3g" "%%a"
于 2013-12-01T13:21:40.150 に答える
0

実行する必要があるたびに、コードからバッチファイルを作成/書き換えることで、これを解決しました。したがって、すべての引数を使用してバッチ ファイルを作成します。それを実行します。次に、ファイルを削除します。これはうまくいきました。

于 2012-01-23T23:44:47.023 に答える
0

Windows のバッチ ファイルは風変わりで、機能が制限されています。できることはCygwinを使用することです。これにより、Windows で実際のシェル (たとえば Bash など) を使用できます。

于 2012-06-23T16:53:11.013 に答える