あなたが提供した情報だけで、これは私が考えることができるものです。
少しずつ行きましょう:
ビデオに追加される画像は1つだけなので。ビデオサイズを小さくする方法があるかどうか疑問に思います(例:28ではなくビットレート/秒= 1)。
静止画なので変更の必要はありません。ただじっとしていて。
何を言っているのかというと、ビットレートではなくフレーム/秒(fps)です。そして、あなたはその概念に正解です。1つの静止画像を1 fpsだけに配置しても問題ありません。
それはmp4に適したサイズですか?画像サイズは重要ですか?
この場合、1枚の静止画像しか扱っていないため、画像サイズはそれほど重要ではありません。高品質のビデオであれば、別の問題です。
jpgのサイズを1080 * 720に変更し、ffmpegで追加設定を行って720pとして出力する必要があります(ffmpeg設定とは:)
あなたが言っている解像度は1280x720です。
-loop 1
ここのオプションには要点がありません。プロセスが遅くなるだけです。-shortest
ファイルに複数の入力ストリームがあるので使用しましたか?いいえの場合、それを使用する理由はありません。あなたが使用-acodec copy
していたので、それを再エンコードしたくないと私は仮定する必要があります。
再エンコードせず、ビットレートに触れない720p 1fpsの出力の場合:
ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -s 1280x720 output.mp4
複数の入力ストリームがあり、ffmpegに最短のストリームでエンコードを終了させたい場合に注意してください。
ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -s 1280x720 -shortest output.mp4
ここで、ビットレートを変更する必要がある場合(例として1024kとしましょう)。
ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -b:v 1024k -bufsize 1024k -s 1280x720 output.mp4
参照:出力ビットレートを制限する
-c:a copy =入力オーディオストリームをコピーして、再エンコードしないようにします。
-b:v =(正確ではない)一定であるように指定されたビットレート。
-bufsize =平均ビットレートを計算する間隔です。-b:vでの指定に従って、最も品質の低い最低の画像だがより正確なビットレートを意味します。
-s =ビデオ出力の実際のサイズ。
-framerate =出力で使用する入力フレームレート。
ある時点でまだ小さいサイズのビデオが必要な場合は、それを実現するために品質を犠牲にする必要があることに注意してください。そしてそれを行う他の方法には、不可逆圧縮による再エンコードが含まれます。
あなたの言うこと、あなたが提供する情報、そしてあなたがしようとしていることから、あなたの目標はアルバムアートをmp3に埋め込むことだと思います。それがあなたの目標であるならば、これはあなたの要件によりよく適合するでしょう:
ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3
-map_metadata = infileからファイルを出力するためのffmpegメタデータ指定子。この場合(ゼロ)はグローバルメタデータです。
-map 0 =入力ストリーム1(オーディオ)。
-map 1 =入力ストリーム2(画像)。
ここにあなたの要求に合うものが何もない場合は、詳細をお知らせください。