FFmpeg tidak menyertakan preset dan profil berbasis file teks lagi untuk libx264, yaitu apa yang telah Anda gunakan dengan -vpre
opsi. Ini telah disusutkan dan dihapus dalam mendukung mengakses preset x264 sebenarnya, profil (dan lagu) dengan -preset
, -profile:v
, dan -tune
pilihan. File teks lama hanya meniru preset dan profil resmi x264, dan karena beberapa keterbatasan tidak dapat menawarkan fungsionalitas penuh yang disediakan oleh sistem baru. Juga lebih mudah untuk dirawat.
Selain itu, banyak encoders memiliki opsi sendiri yang terpisah; juga disebut "opsi pribadi". Anda harus melihat ke opsi encoder audio dan video untuk codec umum dalam dokumentasi online FFmpeg, atau memeriksa output ffmpeg -h full
untuk daftar lengkap opsi yang didukung. Sebagai contoh, x264 mencantumkan opsi-opsinya libx264 AVOptions
di bawah dalam output bantuan penuh.
Jika ffmpeg Anda mendukung -preset
maka semua preset file teks tidak boleh digunakan, dan FFmpeg tidak lagi datang dengan selain beberapa preset iPod non-standar. Ini adalah kesalahpahaman umum bahwa preset teks dapat dengan mudah disalin dari mana saja dan digunakan dengan ffmpeg apa pun. Ini tidak benar dan akan mengakibatkan kerusakan.
Pada dasarnya, preset memungkinkan Anda melakukan hal-hal berikut:
Kualitas kontrol
Kualitas dikontrol dengan menentukan bitrate through -b:v
(untuk video) atau -b:a
(untuk audio), atau dengan menentukan metode encoding lainnya yang mungkin didukung oleh codec.
Untuk x264, ada berbagai metode penyandian, dengan metode Constant Rate Factor yang paling canggih. Ini menghasilkan bitrate variabel, tetapi kualitas keseluruhan baik dalam satu lintasan tunggal. Nilai CRF berkisar dari 0 hingga 51, tetapi nilai waras berkisar antara 19 dan 26, tergantung pada sumber Anda dan kualitas apa yang Anda inginkan. 23 adalah default, jadi Anda dapat misalnya memilih 18 untuk "kualitas tinggi" dan 28 untuk "kualitas rendah", apa pun artinya bagi Anda.
ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
x264 juga memiliki metode penyandian lain , tetapi ini di luar cakupan di sini.
Profil-profil ini menentukan fitur yang dapat digunakan encoder untuk mencocokkan dengan kemampuan decoder tertentu. Dalam FFmpeg baru-baru ini, gunakan sintaks berikut untuk menentukan profil, di mana profil bisa baseline
, main
atau high
:
ffmpeg -i input.mp4 -c:v libx264 -profile:v baseline output.mp4
Untuk info lebih lanjut dan kapan Anda harus menggunakan profil mana, lihat: Apa perbedaan antara Profil H.264?
Pilih penyandian x264 preset
Preset ini mempengaruhi kecepatan encoding. Menggunakan preset yang lebih lambat memberi Anda kompresi yang lebih baik, atau kualitas per file, sedangkan preset yang lebih cepat memberi Anda kompresi yang lebih buruk. Secara umum, Anda hanya perlu menggunakan preset yang Anda mampu untuk menunggu. Presets bisa ultrafast
, superfast
, veryfast
, faster
, fast
, medium
(default), slow
dan veryslow
. Ini sebuah contoh:
ffmpeg -i input.mp4 -c:v libx264 -preset slow output.mp4
Encode video tanpa kehilangan
Ini dimungkinkan dengan menentukan CRF 0, jadi cukup gunakan -crf 0
:
ffmpeg -i input.mp4 -c:v libx264 -crf 0 output.mp4
Akhirnya, mari kita bicara tentang ProRes dengan cepat. ProRes menerima bitrate tetap dengan -b:v
, atau Anda dapat menentukan profil, yang harus berupa nilai antara 0 dan 3 , di mana laju bit dipilih sesuai dengan profil. Lebih tinggi berarti lebih baik:
ffmpeg -i input.mp4 -c:v prores -profile:v 0 output.mov
The ffmbc Wiki menunjukkan bahwa nama-nama profil dapat digunakan - namun hal ini gagal dalam FFmpeg 1.0.
ffmpeg -i input.mp4 -c:v libx264 output.mp4
? crf: 23 dan preset: medium?Saya melakukan tes di mana saya mentranskode-kode (menggunakan pengkodean libx264 ke
.mp4
) video berkualitas tinggi dari camcorder Sony menggunakan kisaran penuh nilai yang telah ditentukan (kecuali plasebo) pada kisaran nilai CRF (18, 21, 24, dan 27 ). Saya ingin tahu apa yang akan memberi saya kombinasi terbaik kecepatan encoding, kualitas output dan ukuran file.Untuk setiap nilai CRF, saya memberi setiap operasi trans-kode skor untuk waktu penyandiannya (misalnya, untuk CRF = 18, nilai preset waktu ultrafast 5,7 detik mendapat skor 1,0, waktu veryslow 162 detik mendapat 0, dengan semua skor lainnya diskalakan di antaranya). Saya menghitung skor ukuran file keluaran dengan cara yang sama, tentu saja memberikan file terkecil skor terbaik. Saya kemudian menambahkan dua skor untuk skor kecepatan / ukuran "gabungan".
Untuk masing-masing dari empat nilai CRF, preset "sangat cepat" adalah pemenang yang mudah diperoleh, dengan skor hampir sempurna 1,94 (untuk CRF 18 dan 21), 1,96 (CRF 24) dan 1,97 (CRF 27). Saya merasa sangat ingin tahu bahwa "veryfast" menghasilkan ukuran file yang paling kecil setiap kali , hanya kalah dari "sangat lambat" dan tidak pernah banyak.
Satu perbedaan yang saya perhatikan di antara berbagai nilai preset adalah bahwa sistem operasi (Windows 7) akan memberi saya thumbnail yang berbeda. Preset yang lebih cepat akan menampilkan thumbnail beberapa detik ke dalam video, di mana thumbnail untuk preset yang lebih lambat akan mencerminkan bingkai pembuka video. Itu tidak penting bagi saya; apa yang saya pelajari adalah "-preset sangat cepat" tampaknya menjadi pilihan yang mudah.
Inilah hasil saya (sebagai gambar snapshot dari spreadsheet Excel):
Berikut ini adalah lembar bentang Excel sebagai teks csv:
sumber