Dengan hanya informasi yang Anda berikan ini, apa yang dapat saya pikirkan.
Mari kita berkeping-keping:
Karena hanya ada satu gambar yang ditambahkan ke video. Saya bertanya-tanya apakah ada cara untuk mengurangi ukuran video misalnya, memaksa bit rate / detik = 1 bukannya 28?
Karena ini adalah gambar diam, tidak perlu diubah. diam saja.
Apa yang Anda bicarakan di sana itu frame per detik (fps) tidak bitrate. Dan Anda benar dalam konsep itu. Beign hanya satu gambar diam 1 fps tidak akan menjadi masalah.
Apakah ini ukuran yang wajar untuk mp4? Apakah ukuran gambar sangat penting?
Dalam hal ini ukuran gambar tidak akan memiliki bobot yang signifikan karena kita hanya berurusan dengan satu gambar diam. Jika itu adalah video berkualitas tinggi maka itu masalah yang berbeda.
Haruskah saya mengubah ukuran jpg ke 1080 * 720, dan membuat pengaturan tambahan di ffmpeg menjadi output sebagai 720p (apa pengaturan ffmpeg kalau begitu :)?
Resolusi yang Anda katakan adalah 1280x720.
Saya tidak melihat titik pada -loop 1
opsi di sini, itu hanya akan memperlambat proses. Apakah Anda menggunakan -shortest
karena file memiliki lebih dari 1 aliran input? Jika tidak maka tidak ada alasan untuk menggunakannya. Karena Anda menggunakan -acodec copy
saya harus berasumsi bahwa Anda tidak ingin menyandikan ulang.
Untuk output 720p 1fps tanpa pengkodean ulang dan tidak menyentuh bitrate:
ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -s 1280x720 output.mp4
Beign case yang memiliki lebih dari satu input stream dan Anda ingin ffmpeg menyelesaikan pengkodean pada stream terpendek kemudian:
ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -s 1280x720 -shortest output.mp4
Sekarang jika Anda harus mengubah bitrate (misalkan 1024k sebagai contoh);
ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -b:v 1024k -bufsize 1024k -s 1280x720 output.mp4
Lihat: Batasi bitrate output
-c: a copy = Salin aliran audio input sehingga kami tidak menyandikan ulang.
-b: v = Bitrate yang ditentukan sebagai konstan (tidak tepat).
-bufsize = Ini interval di mana menghitung bitrate rata-rata. Berarti lebih rendah kualitas gambar kerugian tetapi bitrate lebih akurat sesuai dengan yang ditentukan dalam -b: v .
-s = Ukuran aktual dari output video.
-framerate = Frame rate input yang kita inginkan agar output akan digunakan.
Perhatikan bahwa jika Anda masih menginginkan video ukuran lebih kecil pada satu titik Anda harus mengorbankan kualitas untuk mencapai itu. Dan cara lain untuk melakukannya melibatkan pengodean ulang dengan kompresi lossy.
Dari apa yang Anda katakan, informasi yang Anda berikan dan apa yang Anda coba lakukan, saya pikir tampaknya target Anda adalah menanamkan album-art ke mp3. Jika itu tujuan Anda, ini akan lebih sesuai dengan kebutuhan Anda:
ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3
-map_metadata = Penentu metadata ffmpeg untuk menghasilkan file dari infile. Dalam hal ini ( nol ) metadata global.
-map 0 = Input stream 1 (audio).
-map 1 = Input stream 2 (gambar).
Jika tidak ada yang sesuai dengan permintaan Anda, beri informasi lebih lanjut.