Saya ingin menyandikan video, yang memiliki panjang 60 detik, ke target atau ukuran maksimum 10 MB .
Ada dua pendekatan yang saya tahu. Satu dijelaskan di FFMPEG-Wiki, dan yang lainnya saya temukan di dokumentasi. Sayangnya, saya belum menemukan penjelasan kapan harus menggunakan metode apa.
Apakah ada metode yang direkomendasikan? Jika tidak, apa kelebihan / kekurangan setiap metode?
1) Hitung dan atur Bitrate agar sesuai dengan panjang video seperti yang dijelaskan dalam ffmpeg-wiki
(10 MB * 8192 [mengkonversi MB ke kilobit]) / 60 detik = ~ 1365 kbits / s bitrate total 1365k - 128k (bitrate audio yang diinginkan) = 1237k bitrate video
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) Gunakan -fs
parameter dan biarkan ffmpeg mencari tahu.
ffmpeg -i input -c:v copy -c:a copy -preset medium -crf 23 -fs 10485760 output.mp4
libx264
sebagaic:v
. Dalamfs
contoh, Anda tidak mentranskode video, karena-c:v copy
digunakan. Jadi,preset
dancrf
juga tidak memiliki efek apa pun.