Lưu ý: Thông tin này dựa trên Wiki FFmpeg về mã hóa VP9 . Vui lòng tham khảo bài viết đó để biết thêm thông tin - nó sẽ liên tục được duy trì và mở rộng. Để có kết quả tốt nhất, bạn nên sử dụng phiên bản gần đây ffmpeg
bằng cách tải xuống từ trang web của họ (bản dựng tĩnh sẽ đủ; nó chứa libvps-vp9
bộ mã hóa).
Tốc độ bit biến
Mã hóa VBR cung cấp cho bạn chất lượng tổng thể tối ưu, vì bộ mã hóa có thể tự do chọn số lượng bit để gán cho một khung. Chọn chế độ này trừ khi bạn đang chuẩn bị video để truyền phát bitrate liên tục.
Tùy chọn 1: Mã hóa chất lượng không đổi
Thông thường, nếu bạn không muốn nhắm mục tiêu kích thước tệp cụ thể, bạn nên để bitrate thay đổi tự do, vì điều đó sẽ dẫn đến chất lượng cao nhất. Bạn có thể làm điều này bằng cách đặt bitrate thành 0 và hệ số tốc độ không đổi ( CRF ) thành mức chất lượng mục tiêu:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 output.webm
Giá trị CRF có thể từ 0 Dòng63. Giá trị thấp hơn có nghĩa là chất lượng tốt hơn. Giá trị được đề xuất nằm trong khoảng từ 15 FPV35, với 31 được khuyến nghị cho video HD 1080p. Google có một hướng dẫn với nhiều thông tin hơn về điều đó .
Tùy chọn 2: Mã hóa hai lần với tốc độ bit đích
Nếu bạn muốn tệp của mình có bitrate mục tiêu hoặc kích thước tệp cụ thể, bạn cần chỉ định tốc độ và sử dụng mã hóa hai lần (sẽ đảm bảo phân phối chất lượng tối ưu). Ở đây chúng tôi đang chọn 5 MBit / s, đủ cho nội dung 1080p.
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 5M -pass 1 -f webm /dev/null && \
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 5M -pass 2 output.webm
Người dùng Windows cần sử dụng NUL
thay vì /dev/null
và ^
thay vì \
.
Tốc độ không đổi
Trước hết, libvpx cung cấp các chế độ mã hóa bitrate và bitrate không đổi . Nên tránh bitrate liên tục bất cứ khi nào có thể (trừ khi bạn nhắm mục tiêu kích thước tệp cụ thể hoặc kịch bản phát trực tuyến), vì chất lượng trung bình trên mỗi kích thước tệp sẽ tệ hơn. Tuy nhiên, bạn có thể thử đặt tốc độ bit không đổi nếu không có gì khác phù hợp với bạn, ví dụ với 1 MBit / s:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -minrate 5M -maxrate 5M -b:v 5M output.webm
Nhìn vào đầu ra và tăng hoặc giảm tốc độ bit theo ý thích của bạn (hoặc các ràng buộc kích thước tệp). Ví dụ: bạn có thể sử dụng 500K
hoặc 5M
, et cetera.
Bạn cần phải xác định -minrate
, -maxrate
và bitrate -b:v
để các bộ mã hóa để sử dụng CBR. Tất cả đều phải có cùng một giá trị, nếu không, nó sẽ chọn một bitrate mục tiêu khác thay thế và thực hiện mã hóa VBR, nhưng với chất lượng kém.
Âm thanh
Bộ giải mã âm thanh hiện tại được lựa chọn cho mã hóa VP9 là Opus. FFmpeg sẽ chọn bộ mã hóa cần thiết và các tùy chọn của nó theo mặc định. Nếu bạn muốn thiết lập rõ ràng -c:a libopus
, bạn cũng có thể làm điều đó. Tham khảo libopus
tài liệu để có thêm lựa chọn.