Mengapa saya memilih Libav daripada FFmpeg, atau bahkan ada perbedaan?

72

Dari apa yang saya lihat, sepertinya Libav avconvdianggap sebagai penerus ffmpeg- apakah itu benar?

Jika itu benar, mengapa begitu? Apa sebenarnya yang dilakukan libav lebih baik dan mengapa saya ingin memilihnya daripada ffmpeg?

Saya datang ke "masalah" ini ketika menginstal Ubuntu 12.04.1 LTS di VM dan ketika saya menginstal ffmpeg muncul dengan pesan mengatakan mit ffmpeg sudah usang dan saya pertama kali berpikir "wtf?".

Jika saya menggunakan avconvApakah saya dapat memigrasi skrip saya tergantung pada ffmpeg lebih atau kurang mudah untuk libav? Saya kebanyakan menggunakannya untuk menulis data meta dan melakukan konversi audio (wav, flac, vorbis, mp3, aac).

burzum
sumber
1
ffmpeg tentu saja tidak usang, cukup banyak yang terbaik untuk berkembang biak.
James Campbell

Jawaban:

94

Pertama-tama lihat Siapa yang bisa memberi tahu saya perbedaan dan hubungan antara ffmpeg, libav, dan avconv . Banyak kebingungan adalah hasil dari:

  1. Pengguna tidak membedakan antara proyek, FFmpeg dan libav, dan alat baris perintah masing-masing, ffmpegdan avconv.
  2. Pesan-pesan dengan kata-kata yang buruk didapat ketika mereka mencoba menggunakan libav ffmpeg.

FFmpeg vs ffmpegdan libav vsavconv

  • FFmpeg adalah nama proyek. ffmpegadalah nama alat baris perintah mereka.
  • libav adalah nama proyek. avconvadalah nama alat baris perintah mereka. Untuk waktu yang singkat libav juga punya ffmpeg.

Pengguna sering berpikir "proyek" ketika "alat" sedang dibahas yang mengarah ke ...

Pesan dengan kata-kata yang buruk

Jadi, seperti yang kami pelajari dari tautan Who can tell me ... , ketika libav bercabang dari FFmpeg, mereka juga menyediakan versi mereka untuk sementara ffmpeg. Sebagai anggota libav, pengelola ffmpeg di Debian dan Ubuntu kemudian memutuskan untuk beralih distro untuk menggunakan libav. Dari perspektif libav, ini adalah langkah terbaik mereka: untuk memaksa komunitas pengguna besar menggunakan garpu.

Ubuntu beralih selama periode transisi ketika libav memasok versi ffmpegdan alat berganti nama mereka avconv. Ketika pengguna mencoba menggunakan libav, ffmpegmereka mendapat pesan berikut:

This program is not developed anymore and is only provided for compatibility.  
Use avconv instead (see Changelog for the list of incompatible changes).

Dalam hal ini "ffmpeg" yang disebutkan dalam pesan adalah versi sementara libav yang kemudian dihapus (seperti pesannya). Ingat perbedaan antara FFmpeg dan ffmpeg? Tentu saja pesan ini benar-benar membingungkan banyak pengguna yang dimengerti tidak membuat perbedaan antara proyek dan alat; terutama pengguna Ubuntu yang tidak menyadari bahwa distro mereka melakukan switcharoo atau pengguna yang tidak pernah mendengar libav. Saya tidak tahu apakah libav ingin pengguna berpikir seperti ini, tetapi mereka mungkin menikmati efek samping ini.

Beberapa pengguna Ubuntu menganggap pesan itu terlalu menyesatkan dan kemudian diubah menjadi:

***THIS PROGRAM IS DEPRECATED***
This program is not developed anymore and is only provided for compatibility.  
Use avconv instead (see Changelog for the list of incompatible changes).

Sebuah peningkatan kecil dalam pendapat saya, tetapi saya merasa seolah-olah itu tidak cukup jelas.

Yang mana yang saya gunakan?

Tidak ada yang bisa memberi tahu Anda yang mana yang akan digunakan. Perbedaan utama bagi pengguna adalah bahwa FFmpeg menggabungkan banyak komit dari libav, tetapi tidak begitu timbal balik karena libav tampaknya berpura-pura bahwa FFmpeg tidak ada dan hanya sesekali mengambil ceri dari FFmpeg.

Untuk pengguna biasa, seharusnya tidak ada perbedaan besar. Untuk pengguna Ubuntu yang ingin menggunakan FFmpeg, Anda dapat mengompilasinya dengan mengikuti Cara Mengkompilasi FFmpeg dan x264 , menggunakan PPA FFmpeg Jon Severinsson , atau mendapatkan biner statis sederhana yang ditautkan dari halaman unduhan FFmpeg .

Untuk info lebih lanjut, lihat Situasi FFmpeg / Libav .

llogan
sumber
27
Ini di luar pesan dengan kata-kata yang buruk, itu salah. FFmpeg tidak menghentikan pengembangan sama sekali, bahkan FFmpeg memiliki komunitas yang jauh lebih besar daripada LibAV ... pengelola Ubuntu membuat pesan untuk mengelabui pengguna agar menggunakan LibAV karena keyakinan keliru bahwa FFmpeg sudah mati. ini 100% kejahatan murni.
MarcusJ
1
avconv bahkan tidak mendukung LADSPA
Vassilis
5
@MarcusJ ... secara teknis itu adalah pengelola debian. Tapi ya, saya setuju; itu menipu.
Wyatt8740
Diturunkan untuk frasa "Pesan yang tidak ditulis dengan kata-kata" di tempat yang bukan. Itu adalah kesalahan yang disengaja.
Anwar
1
@ Anwar Ya, sepertinya begitu. Itu sebabnya saya mengatakan itu "kata-kata buruk", tapi saya kira itu kata-kata buruk.
Logan
32

Pembaruan (awal 2016)

  • Peluangnya tetap mendukung ffmpeg. Sebagian besar distro telah beralih kembali / beralih kembali ke ffmpeg ( Gentoo , Debian )
  • Salah satu keuntungan praktis dari ffmpeg adalah ketersediaan luas dari binari untuk banyak platform. Googling untuk lib statis / lib dinamis / binari menghasilkan hasil yang baik untuk linux, mac, windows, ios dan android untuk ffmpeg, sementara saya hanya bisa menemukan linux dan windows build untuk libav. Ini bisa menjadi poin penting jika Anda memiliki sedikit pengalaman dengan C / makefiles.

Situasi saat ini (pertengahan 2015)

Tampaknya lebih baik tetap menggunakan FFmpeg. Seluruh situasi agak berantakan dan jelek. Saya baru mulai membaca di garpu beberapa hari yang lalu. Mengabaikan semua drama, inilah yang kelihatannya fakta:

  • FFmpeg menggabungkan set perubahan dari libav, sementara libav enggan melakukannya (lihat debian debat )
  • Chrome menggunakan ffmpeg, dan Google telah berupaya keras untuk membuatnya aman. libav juga memasukkan perubahan-perubahan itu, tetapi pada kecepatan yang lebih lambat ( posting blog google )
  • FFmpeg mencoba menyimpan sebanyak mungkin codec, sementara libav menjatuhkan beberapa ( milis libav , memposting dari libav dev )
  • Komunitas FFmpeg lebih besar dari libav, dan pengembang yang paling berdedikasi (michael niedermayer) terjebak dengan FFmpeg ( melakukan statistik )
  • Pemelihara ubuntu / debian untuk FFmpeg adalah bagian dari garpu libav. mereka menambahkan pesan penghentian ke beberapa alat baris perintah, mengisyaratkan bahwa ffmpeg sudah ditinggalkan. ini menyebabkan banyak kebingungan. baik debian dan ubuntu beralih kembali ke ffmpeg.
kritzikratzi
sumber
Saya kebetulan dengan Google Michael Niedermayer dan berakhir dengan posting ini , di mana ia mengundurkan diri.
bzeaman
1
@ Bzeaman ya, saya ingat menemukan ini. tetapi dia tampaknya masih rata-rata pada 2 penggabungan / komitmen sehari: git.videolan.org/...
kritzikratzi
hmm tidak menginstal kandidat dalam deb. Apa yang menggantikannya sekarang?
Stígandr
nvm pikiran mendapatkannya libav-tools
Stígandr
1
Niedermayer adalah alasan garpu itu. Yang mengatakan, dia banyak berubah.
Ismael Luceno
9

Ketika Anda pergi ke sini, Anda akan melihat bahwa pembaruan terbaru adalah September 2012 (beberapa bulan yang lalu).

Sepertinya ini mengatakan itu hanya khusus untuk Ubuntu dan Debian saat ini.

Beberapa waktu lalu ffmpeg dipecah menjadi dua garpu dengan nama ffmpeg dan libav.

Debian mengikuti garpu libav di distribusinya dan dalam unggahan yang akan datang biner / usr / bin / ffmpeg akan diganti oleh / usr / bin / avconv.

Sejauh yang saya tahu tidak perlu untuk segera beralih, tetapi Winff harus ditingkatkan untuk memungkinkan biner (dari perspektif Debian, dengan preferensi untuk avconv). Saya tahu Anda dapat mengatur lokasi biner di preferensi, tapi saya pikir dengan set lokasi, Winff harus dapat menemukan biner yang tepat.

Saya pikir di masa depan juga Windows dan distribusi lainnya mungkin terkena masalah ini.

Untuk menjawab pertanyaan Anda tentang apakah itu persis sama atau tidak:

Saya telah menerapkan pemeriksaan untuk biner yang benar di checkout lokal saya, tetapi membaca 1 , saya melihat bahwa ada beberapa inkonsistensi antara avconv dan ffmpeg. Masalah itu lebih besar, karena file preset perlu penyesuaian dan terutama cara kita membuat baris perintah harus diubah. Opsi yang beroperasi pada file input harus SEBELUM file input "-i".

Harap dicatat, ini mungkin khusus untuk versi Windows. Ini diposting mengenai versi Linux:

Alat konversi audio / video FFmpeg sekarang dikenal sebagai AVConv (nama yang lebih baik menurut saya). Jadi alat baris perintah "ffmpeg" sudah usang dan "avconv" harus digunakan. Sejauh yang saya perhatikan semua parameter tetap sama, tetapi penyelidikan lebih lanjut harus dilakukan. Beberapa modifikasi perlu dilakukan dalam CIS.

Tugas:

Instal AVConv pada mesin yang menjalankan CIS. Biasanya avconv akan muncul memperbarui ffmpeg (yang bekerja di Ubuntu; tidak diuji untuk Debian). Ganti "ffmpeg" dengan "avconv" di cis / api / ffmpeg.py, kelas FFmpegTranscoder, bidang prog_bin, yang mewakili alat konversi yang dapat dieksekusi. Nama file refactor, nama kelas, nama metode, nama variabel dll. Yang mengandung "FFmpeg" atau "ffmpeg" sedemikian rupa sehingga mengandung AVConv. IDE seperti Eclipse dapat melakukan ini secara otomatis. Uji! Jika ada masalah, debug!

Everett
sumber
9
Saya sangat tidak setuju dengan posting yang mengatakan "ffmpeg sudah usang dan avconv harus digunakan".
slhck
@ Slhck Itu sepertinya praktik standar ketika Anda forking proyek. Semakin banyak pengguna yang dapat Anda tipu dengan berpikir cabang utama sudah usang, semakin baik untuk garpu Anda.
user253751