Untuk apa -crf digunakan dalam ffmpeg

20

Ketika mengkonversi array jpegs ke file video (format ogg) saya telah menggunakan opsi -crf. Berapa rentang yang valid untuk -crf? Saat ini saya menggunakan 23.

Saya tidak dapat menemukan bookmark yang saya baca untuk mengetahui apa yang dilakukan oleh flag ini dan saya telah menghabiskan waktu mencari Google.

Ini adalah argumen yang saya gunakan saat ini:

-f image2 -r 10 -i " + _sourcePath + @"\img%05d.jpg -crf 18  -y -r 10 " + _destPath + "\\" + _filename + ".ogg"
Andrew Simpson
sumber
1
Saya tidak tahu apa-apa tentang perintah ini, tetapi didokumentasikan dengan sangat baik di sini: ffmpeg.org/ffmpeg.html .
Ben Plont
1
Apakah Anda menggunakan libx264 (untuk video H.264) atau libvpx (untuk video VP8)? Tolong tunjukkan perintah ffmpeg Anda dan output konsol lengkap.
llogan
Hai, maaf atas keterlambatannya. Harus berjalan anjing. Saya akan mengubah pertanyaan saya. Terima kasih
Andrew Simpson
1
Jadi, pertanyaannya adalah apakah Anda ingin menyimpan pertanyaan ini agak umum untuk CRF, atau jika Anda memiliki masalah khusus yang perlu Anda bantu. Dalam kasus terakhir kita perlu mendapatkan output commandline lengkap (mis. Semuanya dari "versi ffmpeg ..." ke bit terakhir) dan perintah aktual yang Anda gunakan, tetapi sayangnya akan membuat jawaban yang ada tidak berguna. Anda mungkin ingin mengajukan pertanyaan baru jika Anda menghadapi masalah nyata.
slhck
Sslhck Hai, Anda memang benar. Saya perlu belajar untuk menjadi lebih spesifik dan komprehensif di masa depan. Karena jawaban Anda sesuai dengan kebutuhan saya, lebih dari kebutuhan orang lain, tetapi kebutuhan orang lain juga informatif. Saya akan melangkah lebih hati-hati di masa depan :) Terima kasih atas waktu Anda. Sangat dihargai.
Andrew Simpson

Jawaban:

19

Itu mengacu pada Faktor Tingkat Konstan ( crf).

Seperti yang ditunjukkan orang lain (Terima kasih semua), nilai akan bergantung pada enkoder mana yang Anda gunakan.

Untuk x264 rentang valid Anda adalah 0-51:

Kisaran skala quantizer adalah 0-51: di mana 0 adalah lossless, 23 adalah default, dan 51 adalah kemungkinan terburuk. Nilai yang lebih rendah adalah kualitas yang lebih tinggi dan kisaran yang secara subyektif waras adalah 18-28. Anggap 18 sebagai lossless visual atau hampir seperti itu: ia harus terlihat sama atau hampir sama dengan input tetapi secara teknis tidak lossless.

Untuk vpx jangkauannya adalah 4-63(seperti yang dijawab oleh @ sebastian-hoffner ):

Secara default nilai CRF bisa dari 4-63, dan 10 adalah titik awal yang baik. Nilai yang lebih rendah berarti kualitas yang lebih baik.

Dalam kedua kasus, lebih rendah lebih baik . Dalam pengalaman saya, saya melihat x264 lebih sering.

Tautan plug-up Slhck yang tidak tahu malu (mod SU) sepertinya memiliki info yang bagus.

nerdwaller
sumber
Rentang untuk VPX adalah dari 0-63 tidak 4-63, tarif yang disarankan adalah 15-30
Suhayb
3

Bendera crf memastikan bitrate variabel untuk kualitas konstan, jika saya memahami halaman yang ditautkan dengan benar. Rentang default adalah dari 4 hingga 63, tetapi dapat diubah lebih lanjut.

Lihat https://trac.ffmpeg.org/wiki/vpxEncodingGuide untuk informasi lebih lanjut.

Sebastian Höffner
sumber
Saya agak bingung dengan ini, kami berdua menautkan ke situs yang sama dan setiap halaman mengatakan sesuatu yang sedikit berbeda (rentang, yaitu). Bagaimanapun, keduanya terlihat sah bagi saya, jadi saya sedikit bingung dengan ini.
nerdwaller
hai, terima kasih untuk itu. Saya ingin meningkatkan kualitas streaming video sehingga crf rendah akan melakukannya?
Andrew Simpson