60秒の長さのビデオを、ターゲットサイズまたは最大サイズ10 MBにエンコードしたいと考えています。
私が知っている2つのアプローチがあります。1つはFFMPEG-Wikiで説明され、もう1つはドキュメントで見つかりました。残念ながら、どの方法をいつ使用するかについての説明はありません。
これらの方法のいずれかが推奨されますか?そうでない場合、各メソッドの利点/欠点は何ですか?
1)ffmpeg-wikiで説明されているように、ビデオの長さに合わせてビットレートを計算および設定します
(10 MB * 8192 [MBをキロビットに変換])/ 60秒=〜1365 kbits / s総ビットレート1365k-128k(必要なオーディオビットレート)= 1237kビデオビットレート
ffmpeg -y -i input -c:v copy -preset medium -b:v 1237k -pass 1 -c:a copy -b:a 128k -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -preset medium -b:v 1237k -pass 2 -c:a libfdk_aac -b:a 128k output.mp4
2)-fs
パラメーターを使用して、ffmpegにそれを理解させます。
ffmpeg -i input -c:v copy -c:a copy -preset medium -crf 23 -fs 10485760 output.mp4
これは私にとって役に立ちました:stackoverflow.com/a/34547102/470749
—
Ryan
libx264
ようにc:v
。このfs
例では、-c:v copy
が使用されているため、ビデオをトランスコードしていません。だから、preset
とcrf
も何の効果もありません。