Handbrake ใช้ตัวเข้ารหัส x264 สำหรับการแปลงวิดีโอ มีไซต์ที่มีภาพรวมของตัวเลือก x264 และ FFmpegทั้งหมด อย่างไรก็ตามตัวเลือกเหล่านี้จะถูกคัดค้านเล็กน้อยและตัวเลือกเหล่านี้บางตัวไม่ทำงานอีกต่อไปหรืออาจถูกเปลี่ยนชื่อ คุณควรใช้โปรไฟล์ x264 สำหรับตัวเลือกรายละเอียดส่วนใหญ่ แต่เราจะไปที่นั่น
หลายตัวเลือก Handbrake พื้นฐาน (เช่นอัตราเฟรม) ไม่ได้เฉพาะเจาะจงกับ x264 และพวกเขาจะกระจายอยู่ทั่วเอกสารออนไลน์ FFmpeg
ก่อนที่เราจะเริ่มต้นโปรดตรวจสอบว่าคุณใช้ FFmpeg เวอร์ชันล่าสุด เว็บไซต์ดาวน์โหลดของพวกเขามีการสร้างแบบคงที่สำหรับระบบปฏิบัติการที่สำคัญทั้งหมด
ไปกันเถอะ:
--input "d:\input.mpg" --output "d:\output.mp4"
ไวยากรณ์ FFmpeg ffmpeg -i input.mpg … d:\output.mp4
เป็น
--rate 29.97
-r 29.97
ระบุอัตราเฟรมวิดีโอด้วย (Handbrake --cfr
เพิ่งกำหนดอัตราเฟรมคงที่ไม่จำเป็นที่นี่)
--arate 44.1
กำหนดอัตราตัวอย่างเสียงด้วย-ar 44100
(เป็น Hz)
--format mp4
ไม่จำเป็นเพราะ FFmpeg รู้ว่าคุณต้องการ MP4
--width 1920 --height 1080 --custom-anamorphic --display-width 1920 --keep-display-aspect --modulus 8 --crop 0:0:0:0
สิ่งนี้ไม่ได้ทำอะไรนอกเหนือจากการตั้งค่าขนาดเป็น 1920 × 1080 ใน FFmpeg, ทำมันด้วยหรือถ้าคุณต้องการใช้ฟิลเตอร์,-s:v 1920x1080
-filter:v "scale=1920:1080"
--encoder x264 --vb 5200
ตั้งค่าการเข้ารหัสด้วยและอัตราบิตไปอย่างต่อเนื่องกับ-c:v libx264
-b:v 5200K
โปรดทราบว่าเรายังไม่ได้มีเมื่อมันมาถึงการตั้งค่าคุณภาพ
--aencoder faac --ab 128 --mixdown stereo
-c:a libfaac -b:a 128K -ac 2
คล้ายกับข้างต้นด้วย โปรดทราบว่า FAAC ไม่ได้รับการสนับสนุนใน FFmpeg อีกต่อไป ให้ใช้ตัวเข้ารหัส FFmpeg ในตัวด้วย-c:a aac -b:a 128K
แทน
-x bitrate=5200:vbv-bufsize=5200:vbv-maxrate=5200
สิ่งนี้ตั้งค่าโหมดการเข้ารหัสเป็นVBVซึ่งกำหนดเป้าหมายสถานการณ์การสตรีมแทนที่จะเป็นบิตเรตหรือคุณภาพคงที่อย่างต่อเนื่อง คุณภาพคงที่เรียกอีกอย่างว่าCRFค่าเริ่มต้นสำหรับ x264 - เรียกว่า "Rate Factor" ใน Handbrake ในขณะที่ CRF มักจะให้การเข้ารหัสที่มีคุณภาพดีที่สุดโหมด VBV จะให้ไฟล์ที่เหมาะสำหรับการสตรีมออนไลน์หรืออุปกรณ์ที่มีความสามารถ จำกัด
ในการตั้งค่า VBV ให้ใช้-maxrate 5200K
และ-bufsize 5200K
ตัวเลือกใน ffmpeg
ในการตั้งค่า CRF ให้ใช้-crf 23
ใน ffmpeg
level=42
-level 42
ใช้ นี่คือระดับ H.264
bframes=2:min-keyint=60:keyint=60:ref=4
กำหนดจำนวนของ -bf 2
B-เฟรมด้วย ช่วงเวลาขั้นต่ำคีย์เฟรมมีการตั้งค่าด้วยและช่วงเวลาสูงสุดด้วย-keyint_min 60
จำนวนภาพอ้างอิงจะกำหนดด้วย-g 60
-refs 4
me=umh:merange=64:subme=7:8x8dct:cabac=1
ตัวเลือกเหล่านี้เป็นตัวเลือกที่คุณสามารถตั้งค่าใน ffmpeg เพิ่มเติมได้-x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1
เช่น - การตั้งค่าตัวเข้ารหัส x264 อื่น ๆ ที่ไม่ได้แมปโดยตรงกับตัวเลือก ffmpeg
ต่อไปนี้เป็นรุ่น "TL; DR" หากคุณขี้เกียจไม่สนใจรายละเอียดหรือหากสิ่งต่าง ๆ ใช้งานไม่ได้: ใช้-preset:v medium
(หรือปล่อยทิ้งไว้เนื่องจากค่าตั้งล่วงหน้าขนาดกลางเป็นค่าเริ่มต้น) ที่ตั้งไว้ล่วงหน้า x264 เลือกชุดของตัวเลือกที่แลกเปลี่ยนความเร็วในการเข้ารหัสเพื่อประสิทธิภาพการบีบอัด พวกเขากำลังอำนวยความสะดวกจากการตั้งชื่อultrafast
, superfast
, veryfast
, faster
, fast
, medium
เพื่อslow
, และslower
veryslow
เลือกสิ่งที่คุณรู้สึกสบายใจ
ดังนั้นเพื่อสรุปรุ่นยาว:
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -b:v 5200K -maxrate 5200K -bufsize 5200K -level 42 -bf 2 -keyint_min 60 -g 60 -refs 4 -x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1 -c:a aac -b:a 128K -ar 44100 d:\output.mp4
หรือตัวย่อที่ฉันจะใช้ (ด้วยการเข้ารหัส VBV และตัวเลือกรายละเอียดเล็กน้อยถูกลบออก):
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -b:v 5200K -maxrate 5200K -bufsize 5200K -c:a aac -b:a 128K -ar 44100 d:\output.mp4
การเปลี่ยนเป็นการเข้ารหัสคุณภาพคงที่สำหรับการแปลงอเนกประสงค์ใช้สิ่งนี้และเปลี่ยน-crf
พารามิเตอร์จาก 18 เป็น 28 โดยที่ต่ำกว่าหมายถึงคุณภาพที่ดีกว่าและ 23 เป็นค่าเริ่มต้น:
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -crf 23 -c:a aac -b:a 128K -ar 44100 d:\output.mp4