Pertanyaan Cheat sheet dan pengaturan preset yang benar-benar bekerja dengan FFmpeg 1.0?


Telah mencoba sejumlah 'cheat sheet' yang tersedia di tempat lain tetapi mereka hampir semua ketinggalan zaman dan hanya TIDAK akan bekerja dengan versi terbaru FFMpeg.

Adakah yang bisa mengarahkan saya ke pengaturan yang AKAN bekerja dengan FFMpeg terbaru?

Saya terutama tertarik pada codec berikut

H.264, preset kualitas rendah sedang dan tinggi

sebaik

ProRes, preset kualitas rendah sedang dan tinggi


19
2017-10-21 16:35


asal




Jawaban:


FFmpeg tidak menyertakan preset dan profil berbasis file teks lagi untuk libx264, yaitu apa yang telah Anda gunakan dengan -vpre pilihan. Ini telah disusutkan dan dihapus demi mengakses preset x264 aktual, profil (dan nada) dengan -preset, -profile:v, dan -tune pilihan. File teks lama hanya meniru preset x264 resmi dan profil, dan karena beberapa keterbatasan tidak dapat menawarkan fungsionalitas penuh yang disediakan sistem baru. Ini juga lebih mudah dirawat.

Selain itu, banyak pembuat enkode memiliki opsi terpisah sendiri; juga disebut "opsi pribadi". Anda harus melihat ke dalam audio dan video pilihan encoder untuk codec umum dalam dokumentasi online FFmpeg, atau periksa output ffmpeg -h full untuk daftar lengkap opsi yang didukung. Sebagai contoh, x264 mendaftar opsi-opsinya di bawah libx264 AVOptions dalam output bantuan penuh.

Jika mendukung ffmpeg Anda -preset maka setiap preset file teks tidak boleh digunakan, dan FFmpeg tidak lagi hadir dengan selain dari 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:

Kontrol kualitas

Kualitas dikontrol baik dengan menentukan bitrate melalui -b:v (untuk video) atau -b:a (untuk audio), atau dengan menentukan metode pengkodean lain yang mungkin didukung oleh codec.

Untuk x264, ada berbagai metode pengkodean, dengan Faktor Tingkat Konstan metode menjadi yang paling canggih. Ini menghasilkan bitrate variabel, tetapi secara keseluruhan berkualitas baik dalam satu laluan tunggal. Nilai CRF berkisar dari 0 hingga 51, tetapi nilai waral berada di 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 -Cepat 23 output.mp4

x264 memiliki metode pengkodean lainnya juga, tetapi ini di luar jangkauan di sini.

Batasi Profil H.264

Profil ini menentukan fitur yang dapat digunakan pembuat enkode untuk mencocokkan kemampuan decoder tertentu. Dalam FFmpeg terbaru, gunakan sintaks berikut untuk menentukan profil, di mana profil bisa baseline, main atau high:

ffmpeg -i input.mp4 -c:v libx264 -profile: v dasar output.mp4

Untuk info lebih lanjut dan kapan Anda harus menggunakan profil mana, lihat: Apa perbedaan antara H.264 Profil?

Pilih pengkodean 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 harus menggunakan preset yang Anda mampu untuk menunggu. Preset bisa ultrafast, superfast, veryfast, faster, fast, medium (default), slow dan veryslow. Inilah contohnya:

ffmpeg -i input.mp4 -c:v libx264 -setelah lambat output.mp4

Encode lossless video

Ini dimungkinkan dengan menentukan CRF 0, jadi gunakan saja -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 seharusnya nilai antara 0 dan 3, di mana bit rate dipilih sesuai dengan profil. Lebih tinggi berarti lebih baik:

ffmpeg -i input.mp4 -c:v prores -profile: v 0 output.mov

Itu ffmbc Wiki menunjukkan bahwa nama-nama profil dapat digunakan - namun ini gagal dalam FFmpeg 1.0.


39
2017-10-21 16:53



Apa yang harus saya lakukan untuk mengurangi kemungkinan Konversi Gagal, itu terjadi secara acak, kadang-kadang itu tidak terjadi - FlyingAtom
@FlyingAtom Saya belum pernah mendengar tentang "Konversi Gagal". Jika Anda memiliki pertanyaan khusus dengan masalah yang dapat direproduksi, silakan ajukan pertanyaan baru: superuser.com/questions/ask - slhck
Jadi apa yang Anda akan berakhir dengan efektif jika semua yang Anda berikan adalah ffmpeg -i input.mp4 -c:v libx264 output.mp4? crf: 23 dan preset: sedang? - Drazen Bjelovuk
@ Drazen Ya, benar. - slhck
Tepuk tangan! ------- - Drazen Bjelovuk


Saya melakukan tes di mana saya melakukan trans-kode (menggunakan libx264 encoding ke .mp4) video berkualitas tinggi dari camcorder Sony menggunakan kisaran penuh nilai preset (kecuali plasebo) pada berbagai nilai CRF (18, 21, 24, dan 27). Saya ingin tahu apa yang akan memberi saya kombinasi terbaik dari kecepatan encoding, kualitas output dan ukuran file.

Untuk setiap nilai CRF, saya memberikan masing-masing 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 nilai 0, dengan semua skor lain ditingkatkan di antara). Saya menghitung nilai ukuran file output 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 hands-down, 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 "sangat cepat" diproduksi hampir ukuran file terkecil setiap saat, kehilangan hanya untuk "sangat pelan" dan tidak pernah oleh banyak.

Satu perbedaan yang saya perhatikan di antara berbagai nilai preset adalah bahwa sistem operasi (Windows 7) akan memberikan 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 frame pembuka dari video. Itu tidak penting bagi saya; apa yang saya pelajari adalah bahwa "-preset sangat cepat" tampaknya menjadi pilihan yang mudah.

Berikut adalah hasil saya (sebagai gambar snapshot dari spreadsheet Excel):
excel snapshot

Berikut adalah spreadsheet Excel sebagai teks csv:

CRF,Preset,Seconds,score,MB,score,totalscore
18,1_ultrafast,5.7,1.00,59.5,0.09,1.09
18,2_superfast,8.4,0.98,62.3,0.00,0.98
18,3_veryfast,10.8,0.97,30.9,0.98,1.94
18,4_faster,16.0,0.93,33.5,0.89,1.83
18,5_fast,24.0,0.88,36.8,0.79,1.68
18,6_medium,29.1,0.85,34.9,0.85,1.70
18,7_slow,48.1,0.73,33.9,0.88,1.61
18,8_slower,84.9,0.49,33.0,0.91,1.40
18,9_veryslow,162.0,0.00,30.1,1.00,1.00
21,1_ultrafast,5.7,1.00,38.0,0.00,1.00
21,2_superfast,7.9,0.98,35.0,0.15,1.14
21,3_veryfast,10.0,0.97,19.0,0.97,1.94
21,4_faster,14.2,0.94,21.0,0.87,1.80
21,5_fast,19.9,0.89,23.0,0.77,1.66
21,6_medium,24.6,0.86,22.0,0.82,1.67
21,7_slow,43.1,0.72,21.0,0.87,1.58
21,8_slower,69.8,0.51,20.5,0.89,1.41
21,9_veryslow,137.3,0.00,18.4,1.00,1.00
24,1_ultrafast,5.5,1.00,24.9,0.00,1.00
24,2_superfast,7.5,0.98,21.4,0.27,1.25
24,3_veryfast,9.3,0.97,12.0,0.99,1.96
24,4_faster,13.2,0.93,14.0,0.84,1.77
24,5_fast,17.4,0.90,15.0,0.76,1.66
24,6_medium,21.0,0.87,14.4,0.81,1.67
24,7_slow,37.3,0.72,14.0,0.84,1.56
24,8_slower,62.2,0.51,13.0,0.92,1.42
24,9_veryslow,121.1,0.00,11.9,1.00,1.00
27,1_ultrafast,5.5,1.00,16.8,0.00,1.00
27,2_superfast,7.4,0.98,13.6,0.38,1.36
27,3_veryfast,9.0,0.97,8.4,1.00,1.97
27,4_faster,12.6,0.93,10.1,0.80,1.73
27,5_fast,15.8,0.90,10.4,0.76,1.66
27,6_medium,18.8,0.87,10.0,0.81,1.68
27,7_slow,34.1,0.73,9.8,0.83,1.56
27,8_slower,59.6,0.48,9.0,0.93,1.41
27,9_veryslow,109.7,0.00,8.4,1.00,1.00

8
2017-10-14 19:04



Saya tahu opsi pemformatan Pengguna Super biasa-biasa saja, tetapi mungkin bermanfaat jika Anda mengeposkan data sebagai teks - mungkin menggunakan pemformatan kode. - Scott
Informasi yang sangat bermanfaat, terima kasih! - neevek