Vui lòng đọc tài liệu cho FFmpeg và chạy ffmpeg -h full
cho danh sách các tùy chọn. Ngoài ra, hãy xem bài viết này tôi đã viết, cho thấy sự khác biệt giữa các chế độ kiểm soát tốc độ trong các bộ mã hóa như x264 và x265.
Nói chung, đây là ý nghĩa của các tùy chọn:
-b:v
(hoặc -vb
, giống nhau) chỉ định tốc độ bit trung bình đích cho bộ mã hóa sử dụng:
-b
<int>
E..VA
. đặt bitrate (tính bằng bit / s) (từ 0 đến INT_MAX)
-minrate
chỉ định dung sai tối thiểu được sử dụng:
-minrate
<int>
E..VA
. Đặt dung sai bitrate tối thiểu (tính bằng bit / s). Hữu ích nhất trong việc thiết lập mã hóa CBR. Nó là ít sử dụng khác. (từ INT_MIN đến INT_MAX)
-maxrate
chỉ định dung sai tối đa. Tuy nhiên, như tài liệu chỉ ra, điều này chỉ được sử dụng cùng với bufsize
:
-maxrate
<int>
E..VA
. Đặt dung sai bitrate tối đa (tính bằng bit / s). Yêu cầu bufsize
được thiết lập. (từ INT_MIN đến INT_MAX)
-bufsize
<int>
E..VA
. đặt kích thước bộ đệm ratecontrol (tính bằng bit) (từ INT_MIN đến INT_MAX)
Điều này chỉ có ý nghĩa đối với mã hóa tốc độ bit thay đổi, trong đó thay vì sử dụng tốc độ bit không đổi hoặc mô hình chất lượng không đổi, bộ mã hóa mô phỏng một truyền dẫn với bộ đệm ảo tại bộ giải mã. Các -minrate
/ -maxrate
/ -bufsize
tùy chọn kiểm soát kích thước bộ đệm. Bạn thường chỉ sử dụng chế độ này để phát trực tuyến, vì kỹ thuật này sẽ hạn chế tốc độ bit để không vượt quá một giá trị nhất định, điều này sẽ khiến bộ đệm giải mã bị tràn hoặc tràn.
Để tóm tắt, bạn có một số tùy chọn để giới hạn bitrate:
Để thiết lập quy trình CBR, bạn phải kiểm tra những gì bộ mã hóa cung cấp. Thông thường, bạn không thể đạt được tốc độ bit không đổi "hoàn hảo", vì bộ mã hóa sẽ không lãng phí bit. Thiết -b:v
, -minrate
và -maxrate
để cùng cấp sẽ đạt được điều đó, ví dụ cho libx264:
ffmpeg -i input.mp4 -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 1M -minrate 1M -maxrate 1M -bufsize 2M output.ts
Cảnh báo: Điều này có thể dẫn đến chất lượng thấp cho các video khó mã hóa và sẽ lãng phí bit. Trừ khi bạn thực sự cần phải đạt được đầu ra tốc độ không đổi, không sử dụng tùy chọn này.
Thiết lập một quy trình tốc độ bit bị ràng buộc / biến để phát trực tuyến. Sử dụng -b:v 3500K -maxrate 3500K -bufsize 1000K
, ví dụ. Bạn sẽ phải điều chỉnh tỷ lệ và kích thước bộ đệm theo ngữ cảnh rõ ràng. Kích thước bộ đệm càng cao, biến thể bitrate cho phép càng cao.
Sử dụng mục tiêu chất lượng không đổi và chỉ giới hạn tốc độ bit để bắt gai. Ví dụ: sử dụng -c:v libx264 -crf 23 -maxrate 4M -bufsize 4M
để mã hóa ở tốc độ bit thay đổi với CRF mục tiêu là 23, nhưng giới hạn đầu ra tối đa là 4 MBit / s.