Tốc độ bit thay đổi với các cài đặt tối đa -vbvvvvv


12

Để kết xuất, thời gian cần thiết là rất khác nhau.

  • -b 3500K -minrate 0K -maxrate 8000K mất 1 giờ 17 phút
  • vb=3000k mất 2,5 giờ

Nó là gì vb 3000kvà nó khác với -b 3500K -minrate 0K -maxrate 8000Knhư thế nào? Là những cài đặt tốc độ bit thay đổi?

Nếu tôi thay đổi -b 3500K -minrate 3500K -maxrate 3500K, tốc độ bit không đổi?

Câu trả lời:


16

Vui lòng đọc tài liệu cho FFmpeg và chạy ffmpeg -h fullcho 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)

  • -maxratechỉ đị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/ -bufsizetù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:

  1. Để 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-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.

  2. 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.

  3. 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.


1
Làm thế nào nó sẽ mã hóa bằng cách sử dụng tốc độ bit thay đổi? như trong cú pháp sử dụng?
Scott Downey

Bạn muốn sử dụng bộ mã hóa nào?
slhck

ffmpeg, tôi tin rằng nó được sử dụng trong kdenlive
Scott Downey

Không, ý tôi là như trong: x264 cho video AVC H.264 / MPEG-4 hoặc XviD cho MPEG-4, hoặc Ogg Theora, v.v. chỉ cần đặt, bạn muốn tập tin nào? MP4?
slhck

3
Xem ở đây để biết thêm thông tin về mã hóa với x264 trong FFmpeg; đặc biệt là nhìn vào các cài đặt trước (tôi thường sử dụng cài đặt trước rất nhanh, trong các thử nghiệm của tôi, mức giảm lớn nhất trong kích thước tệp là giữa siêu nhanh và rất nhanh - sau đó, sự khác biệt đã tăng lên nhiều. Tất nhiên là YMMV).
evilsoup
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.