まず、私はプログラマーでもスクリプターでもありません。数日間遊んでいただけです。
mp4 ビデオ ファイルと srt 字幕ファイルを含むフォルダーがあります。mencoder と handbrake を使用して手動で再エンコードし、字幕をビデオ ファイルにハードコードしました。
mencoder -oac pcm -ovc raw -sub NAMEOFVIDEO.sub -utf8 -o NAMEOFVIDEO_SRT NAMEOFVIDEO.mp4
これはうまく機能し、私が探しているものです。だから私が持っているのは、複数の .srt と .mp4 を含むこの /working ディレクトリです (毎日 2 つまたは 3 つの新しいビデオと srt ファイルがあるかもしれません)
.srt ファイルと .mp4 ファイルが 1 つしかない場合でも管理できますが、mencoder として 2 つまたは 3 つの異なる srt ファイルと mp4 ファイルがある場合に、mencoder コマンドを実行できる Bash スクリプトを作成する方法を見つけようとしています。行は、対応する正しい srt ファイルと mp4 ファイルの組み合わせで実行する必要があります。
私が思いつくことができるmp4_file= find \working -type f -name "*.mp4" | head -1
のは、最初の結果.mp4を見つけるようなものだけです
srt_file = find \working -type f -name "*.srt" | head -1
最初の結果 .srt を見つけます (幸いなことに、それは同じベース名ファイルです)
次に、mencoderコマンドを使用して変数を実行しますmencoder -oac pcm -ovc raw -sub $srt_file -utf8 -o $mp4_file-SRT $mp4_file
が、ファイルの組み合わせが複数ある場合(ループの可能性があります)、出力を突き刺す必要がありますHandBrakeCLI --preset "High Profile" -i $mp4_file-SRT -o $mp4_file
それは恐ろしいことです。これを行う簡単な方法がありませんか?