Tôi muốn mã hóa video, có độ dài 60 giây, tới mục tiêu hoặc kích thước tối đa là 10 MB .
Có hai cách tiếp cận tôi biết. Một cái được giải thích trong FFMPEG-Wiki, và cái khác tôi tìm thấy trong tài liệu. Thật không may, tôi không tìm thấy lời giải thích khi nào nên sử dụng phương pháp nào.
Có bất kỳ phương pháp được đề nghị? Nếu không, những mặt trái / mặt trái của từng phương pháp là gì?
1) Tính toán và đặt Bitrate phù hợp với độ dài của video như được giải thích trong ffmpeg-wiki
(10 MB * 8192 [chuyển đổi MB thành kilobits]) / 60 giây = ~ 1365 kbits / s tổng bitrate 1365k - 128k (bitrate âm thanh mong muốn) = bitrate video 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) Sử dụng -fs
tham số và để ffmpeg tìm ra nó.
ffmpeg -i input -c:v copy -c:a copy -preset medium -crf 23 -fs 10485760 output.mp4
libx264
nhưc:v
. Trongfs
ví dụ này, bạn không chuyển mã video, vì-c:v copy
được sử dụng. Vì vậy,preset
vàcrf
cũng không có bất kỳ ảnh hưởng.