โปรดอ่านเอกสารประกอบสำหรับ FFmpeg และเรียกใช้ffmpeg -h full
สำหรับรายการตัวเลือก นอกจากนี้ให้ดูที่บทความที่ฉันเขียนซึ่งแสดงความแตกต่างระหว่างโหมดการควบคุมอัตราในตัวเข้ารหัสเช่น x264 และ x265
โดยทั่วไปนี่คือความหมายของตัวเลือก:
-b:v
(หรือ-vb
เหมือนกัน) ระบุอัตราบิตเป้าหมายเฉลี่ยสำหรับโปรแกรมเข้ารหัสที่จะใช้:
-b
<int>
E..VA
. ตั้งค่าบิตเรต (เป็นบิต / s) (จาก 0 ถึง INT_MAX)
-minrate
ระบุความอดทนขั้นต่ำที่จะใช้:
-minrate
<int>
E..VA
. ตั้งค่าความอดทนบิตเรตขั้นต่ำ (เป็นบิต / วินาที) มีประโยชน์มากที่สุดในการตั้งค่าการเข้ารหัส CBR มันเป็นของใช้เล็ก ๆ น้อย ๆ (จาก INT_MIN ถึง INT_MAX)
-maxrate
ระบุความอดทนสูงสุด อย่างไรก็ตามตามเอกสารระบุว่าสิ่งนี้ถูกใช้ร่วมกับbufsize
:
-maxrate
<int>
E..VA
. ตั้งค่าความอดทนบิตเรตสูงสุด (เป็นบิต / วินาที) bufsize
จะต้องมีการตั้งค่า (จาก INT_MIN ถึง INT_MAX)
-bufsize
<int>
E..VA
. ตั้งค่าขนาดบัฟเฟอร์ของ Ratecontrol (เป็นบิต) (จาก INT_MIN ถึง INT_MAX)
สิ่งนี้เหมาะสมสำหรับการเข้ารหัสอัตราบิตผันแปรซึ่งแทนที่จะใช้อัตราบิตคงที่หรือรุ่นคุณภาพคงที่ตัวเข้ารหัสจะจำลองการส่งสัญญาณด้วยบัฟเฟอร์เสมือนที่ตัวถอดรหัส กระบวนการ-minrate
/ -maxrate
/ -bufsize
ตัวเลือกควบคุมขนาดบัฟเฟอร์ที่ โดยทั่วไปคุณจะใช้โหมดนี้สำหรับการสตรีมเท่านั้นเนื่องจากเทคนิคจะ จำกัด อัตราบิตเพื่อไม่ให้เกินค่าที่แน่นอนซึ่งจะทำให้บัฟเฟอร์ถอดรหัสถอดรหัสเกินหรือต่ำกว่า
ในการสรุปคุณมีหลายทางเลือกสำหรับการ จำกัด อัตราบิต:
ในการตั้งค่ากระบวนการ CBR คุณต้องตรวจสอบสิ่งที่ตัวเข้ารหัสเสนอ โดยทั่วไปคุณจะไม่สามารถรับบิตเรตที่สมบูรณ์แบบได้เนื่องจากตัวเข้ารหัสจะไม่เสียบิต การตั้งค่า-b:v
, -minrate
และ-maxrate
ให้อยู่ในระดับเดียวกันจะประสบความสำเร็จที่ตัวอย่างสำหรับ libx264:
ffmpeg -i input.mp4 -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 1M -minrate 1M -maxrate 1M -bufsize 2M output.ts
คำเตือน:สิ่งนี้อาจส่งผลให้วิดีโอมีคุณภาพต่ำซึ่งเข้ารหัสได้ยากและจะทำให้เสียบิต หากคุณไม่จำเป็นต้องมีอัตราการส่งออกคงที่อย่าใช้ตัวเลือกนี้
ตั้งค่ากระบวนการอัตราบิตข้อ จำกัด / ตัวแปรสำหรับการสตรีม ใช้-b:v 3500K -maxrate 3500K -bufsize 1000K
ตัวอย่างเช่น คุณจะต้องปรับอัตราและขนาดบัฟเฟอร์ให้เหมาะสมกับบริบทอย่างชัดเจน ยิ่งขนาดบัฟเฟอร์สูงขึ้นเท่าใดความผันแปรบิตเรตที่อนุญาตก็จะสูงขึ้น
ใช้เป้าหมายคุณภาพคงที่และ จำกัด บิตเรตเท่านั้นเพื่อจับเดือย ตัวอย่างเช่นใช้-c:v libx264 -crf 23 -maxrate 4M -bufsize 4M
เพื่อเข้ารหัสที่บิตเรตตัวแปรที่มีเป้าหมาย CRF เป็น 23 แต่ จำกัด เอาต์พุตที่สูงสุด 4 MBit / s