libvpx
hơi phức tạp liên quan đến kiểm soát tốc độ và cài đặt chất lượng. Vui lòng tham khảo vpx Encoding Guide và VP8 Encode Parameter Guide để biết thêm thông tin. Tôi mất một giờ đào bới mã nguồn để hiểu nó.
Nếu bạn muốn thiết lập bitrate liên tục, bạn sẽ phải thiết lập b:v
, maxrate
và minrate
với các giá trị tương tự, ví dụ như vậy (lưu ý rằng tôi bỏ qua các tùy chọn âm thanh ở đây cho ngắn gọn):
ffmpeg -i input.mov -c:v libvpx -b:v 1900K -maxrate 1900K -minrate 1900K output.webm
Nếu thay vào đó bạn muốn sử dụng chất lượng biến và chỉ cần chỉ định giới hạn trên cho tốc độ bit, thì bạn cần đặt cả b:v
và crf
. Nếu bạn rời khỏi crf
, tốc độ bit được chỉ định sẽ chỉ được tính là trung bình. Chỉ với crf
, bộ mã hóa thay đổi ý nghĩa của b:v
thành mức tối đa cho phép.
ffmpeg -i input.mov -c:v libvpx -b:v 1900K -crf 10 output.webm
Một giá trị 10 cho CRF là một điểm khởi đầu tốt, nhưng libvpx
có thể thay đổi chất lượng mỗi khung trong phạm vi của qmin ≤ q ≤ qmax
, mà bạn cũng có thể chỉ định nếu bạn muốn. Đặt một giới hạn dưới của 10 cho qmin
có vẻ hơi cao đối với tôi, nhưng về bản chất bạn sẽ phải thực hiện một số thử và sai, vì nếu tốc độ bit tối đa quá thấp, bạn sẽ liên tục làm bão hòa nó.
Cảm ơn bạn rất nhiều vì đã dành thời gian cho bạn! :) Như bạn đã nói trong ví dụ đầu tiên của bạn, để lại chất lượng đã làm các trick. Nó hoạt động như một sự quyến rũ bây giờ. –