質問が正しいかどうか分かりませんが、やってみます。誕生日に DVD ボックス セットをもらい、ファイルをトランスコードしてコンピューターに保存し、視聴できるようにしました。生のファイルをコンピューターにダンプした後、次のバッチ コマンドで圧縮しました。
INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec libfaac "$i.ts"
mv "$i.ts" "$i.mp4"
sleep 3
done
その結果、圧縮率と品質は向上しましたが、ファイルが保存されているフォルダを見ると、アイコンは灰色のボックスだけになっています。同じフォルダ内の元のファイルには、ビデオの画像が表示されていました。(笑、見た目の問題なのはわかっていますが、気になります :)
次のコマンドを使用すると;
ffmpeg -i input.mp4 -vcodec h264 -acodec libfaac output.mp4
画像アイコンは正常に表示されますが、(h264) ではなく (AVC1) としてエンコードされるため、期待どおりに動作しません。
バッチ ファイル コマンドでこの問題を解決し、ファイル アイコンを希望どおりに表示する方法はありますか? ありがとうございます!
答え1
Gyan が提供してくれた情報のおかげで、バッチ ファイル コマンドの変更に関する質問に対する効果的な解決策を見つけることができました。その解決策は次のとおりです。
INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec libfaac "$i.ts"
ffmpeg -i "$i.ts" -bsf:a aac_adtstoasc -c copy "$i.mp4"
rm *.ts
sleep 3
done
ただし、Gyan が提供した情報を利用すると、送信ストリーム ファイルにエンコードして mp4 に再多重化する手順を省略し、次のバッチ コマンドで mp4 ファイルを圧縮するだけで済みます。
INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec libfaac "$i.mp4"
sleep 3
done
これは、ffmpeg の古いバージョンを使用して行われたことに注意してください。ffmpeg の新しいバージョンでは、圧縮するビデオの適切なイメージ アイコンを維持しながら、次の手順に従ってビデオを圧縮します。
INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec aac "$i.mp4"
sleep 3
done
バッチ ファイル コマンドを使用する際の唯一の問題は、ファイル名 (filename.mp4.mp4) に余分なファイル拡張子が追加されることです。この問題に対処するには、pyrenamer を使用して、1 回のクリックで複数のディレクトリにあるすべてのファイルの余分なファイル拡張子を削除します。
バッチ コマンド内でこの問題を解決する方法をご存知の方がいらっしゃいましたら、コメントをいただければ、この回答を修正します。「mv」コマンドのさまざまなバリエーションを試してみましたが、うまくいきませんでした。