ffmpeg コマンドは cmd では動作しますが、バッチ ファイルでは動作しません

ffmpeg コマンドは cmd では動作しますが、バッチ ファイルでは動作しません

フォルダー内の mkv ファイルを mp4 に変換するコマンドがあります。変換したファイルに透かしを追加しようとすると、コマンドプロンプトでは正常に機能しますが、バッチファイルで実行すると、引数を使用してフィルター 'drawtext' を初期化中にエラーが発生しましたというエラーが表示されます。ffmpeg コマンドは次のとおりです。

ffmpeg -y -r 20 -i %~d1%~p1%~n1.mkv -vf "drawtext=text='Watermark Text':x=10:y=H-th-10:fontfile=/Windows/Fonts/Calibri.ttf:fontsize=45:[email protected]: x=(w-text_w)/2: y=(h-text_h)/2" -c:v libx264 -preset ultrafast -b:v 1000k %~d1%~p1%~n1

どこが間違っているのでしょうか?

答え1

バッチ ファイルにエスケープ文字を使用してみてください:

ffmpeg -y -r 20 -i %~d1%~p1%~n1.mkv -vf ^"drawtext=text='Watermark Text':x=10:y=H-th-10:fontfile=/Windows/Fonts/Calibri.ttf:fontsize=45:[email protected]: x=(w-text_w)/2: y=(h-text_h)/2^" -c:v libx264 -preset ultrafast -b:v 1000k %~d1%~p1%~n1

関連情報