私はmanyビデオファイル(mp4)を持っており、それぞれの字幕が付いています(各ビデオと字幕は同じ名前です)。
このアイデアは、再エンコードせずにビデオの各字幕をコピーするbashを作成します。最初のビデオでは、ターミナルでこのコマンドを試しましたが、魅力のように機能します。
$ ffmpeg -i 01-01-Introduction.mp4 -fix_sub_duration -i 01-01-Introduction.srt -c:s mov_text -c:v copy -c:a copy -map 0:v -map 0:a -map 1 -metadata:s:s:0 language=eng 01-01-Introduction-sub.mp4
いくつかのファイル:
助言がありますか?前もって感謝します
これは機能します。入力ファイルの上書きを避けるために、out変数を変更しました:"${i%.mp4}-sub.mp4"
#!/usr/local/bin/bash
# GNU bash version 4.3.42
# To avoid overwrite files: "${i%.mp4}-sub.mp4"
for i in *.mp4; do
SUB=${i%.mp4}.srt
ffmpeg -i "$i" -fix_sub_duration -i "$SUB" -c:s mov_text -c:v copy -c:a copy -map 0:v -map 0:a -map 1 -metadata:s:s:0 language=eng "${i%.mp4}-sub.mp4";
done
@MariusMatutiaeに感謝します
試してみてください;
for i in *.mp4; do
SUB={i%%.mp4}.srt
ffmpeg -i "$i" -fix_sub_duration -i "$SUB" -c:s mov_text -c:v copy -c:a copy -map 0:v -map 0:a -map 1 -metadata:s:s:0 language=eng "$i"
done
one mp4ファイルとそのサブタイトルを空のディレクトリにコピーして上記のコマンドをテストし、そこで試してみてください。それがうまくいけば、あなたは続けることができます。