Handbrake menggunakan enkoder x264 untuk konversi video. Ada situs dengan ikhtisar semua opsi x264 dan rekan FFmpeg mereka . Namun, ini sedikit usang dan beberapa opsi ini tidak berfungsi lagi atau mungkin telah diubah namanya. Anda harus menggunakan profil x264 untuk sebagian besar opsi detail — tetapi kita akan sampai di sana.
Banyak opsi Handbrake dasar (misalnya frame rate) tidak spesifik untuk x264, dan mereka tersebar di seluruh dokumentasi online FFmpeg .
Sebelum kita mulai, periksa apakah Anda menggunakan versi FFmpeg terbaru. Situs unduhan mereka memiliki versi statis untuk semua sistem operasi utama.
Ayo pergi:
--input "d:\input.mpg" --output "d:\output.mp4"
Sintaks FFmpeg adalah ffmpeg -i input.mpg … d:\output.mp4
.
--rate 29.97
Tentukan frame rate video dengan -r 29.97
. (Handbrake --cfr
hanya menetapkan frame rate yang konstan. Tidak diperlukan di sini).
--arate 44.1
Atur laju sampel audio dengan -ar 44100
(dalam Hz).
--format mp4
Tidak diperlukan karena FFmpeg tahu Anda ingin MP4.
--width 1920 --height 1080 --custom-anamorphic --display-width 1920 --keep-display-aspect --modulus 8 --crop 0:0:0:0
Ini tidak melakukan apa pun selain mengatur ukuran ke 1920 × 1080. Di FFmpeg, lakukan dengan -s:v 1920x1080
, atau jika Anda ingin menggunakan filter -filter:v "scale=1920:1080"
,.
--encoder x264 --vb 5200
Setel enkoder dengan -c:v libx264
dan bit rate ke konstan dengan -b:v 5200K
. Perhatikan bahwa kita belum sampai pada pengaturan kualitas.
--aencoder faac --ab 128 --mixdown stereo
Mirip dengan di atas, dengan -c:a libfaac -b:a 128K -ac 2
. Perhatikan bahwa FAAC tidak lagi didukung dalam FFmpeg; sebagai gantinya, gunakan enkoder FFmpeg bawaan -c:a aac -b:a 128K
sebagai gantinya.
-x bitrate=5200:vbv-bufsize=5200:vbv-maxrate=5200
Ini menetapkan mode pengodean ke VBV yang menargetkan skenario streaming alih-alih hanya bitrate atau kualitas konstan. Kualitas konstan juga disebut CRF , standar untuk x264 - ini disebut "Faktor Tingkat" di Handbrake. Sementara CRF biasanya memberi Anda encode kualitas terbaik, mode VBV memberi Anda file yang lebih cocok untuk streaming online atau untuk perangkat tertentu dengan kemampuan terbatas.
Untuk mengatur VBV, gunakan opsi -maxrate 5200K
dan -bufsize 5200K
di ffmpeg.
Untuk mengatur CRF, gunakan -crf 23
di ffmpeg.
level=42
Gunakan -level 42
. Ini adalah Level H.264 .
bframes=2:min-keyint=60:keyint=60:ref=4
Atur jumlah B-Frame dengan -bf 2
. Interval keyframe minimum diatur dengan -keyint_min 60
, dan interval maksimum dengan -g 60
. Jumlah gambar referensi diatur dengan -refs 4
.
me=umh:merange=64:subme=7:8x8dct:cabac=1
Ini adalah opsi yang dapat Anda atur di ffmpeg tambahan dengan -x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1
- seperti pengaturan encoder x264 lainnya yang tidak langsung dipetakan ke opsi ffmpeg.
Ini versi "TL; DR" jika Anda malas, tidak peduli dengan detailnya, atau jika ada yang tidak berfungsi: Gunakan -preset:v medium
(atau tinggalkan, karena pengaturan awal media adalah default). Preset x264 memilih serangkaian opsi yang berdagang dengan kecepatan enkode untuk efisiensi kompresi. Mereka nyaman nama dari ultrafast
, superfast
, veryfast
, faster
, fast
, medium
untuk slow
, slower
dan veryslow
. Pilih apa pun yang Anda rasa nyaman.
Jadi, untuk meringkas, versi panjang:
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
Atau yang singkat yang saya gunakan (dengan penyandian VBV dan beberapa opsi detail dihapus):
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
Mengubah ke penyandian kualitas konstan untuk konversi serba guna, gunakan ini dan ubah -crf
parameter dari 18 menjadi 28, di mana lebih rendah berarti kualitas lebih baik dan 23 adalah default:
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