Neden FFmpeg yerine Libav'ı seçeyim, ya da bir fark bile var mı?


72

Gördüğüm kadarıyla bana Libav’un avconvhalefi olduğu düşünülüyor gibi geliyor ffmpeg- bu doğru mu?

Eğer bu doğruysa, neden böyle? Libav tam olarak ne yapıyor ve neden onu ffmpeg yerine seçmek isteyeyim?

Bir VM’de Ubuntu 12.04.1 LTS’yi kurarken bu "sorun" la karşılaştım ve ffmpeg yüklediğimde mit ffmpeg’in kullanımdan kaldırıldığını ve ilk önce "wtf?" Olduğunu düşündüğüm bir mesajla geldim.

Ben kullanırsanız avconvben Ffmpeg üzerinde az ya da çok kolay libav için bağlı benim yapılarınızı mümkün olacak mı? Çoğunlukla meta veri yazmak ve ses dönüşümü yapmak için kullanıyorum (wav, flac, vorbis, mp3, aac).


1
ffmpeg kesinlikle modası geçmiş değil, yaptıkları için cins içinde en iyisi.
James Campbell,

Yanıtlar:


94

Her şeyden önce ffmpeg, libav ve avconv arasındaki farkları ve ilişkileri kim bana söyleyebilir . Karışıklıkların çoğu şu sonucudur:

  1. Projeler, FFmpeg ve libav ile ilgili komut satırı araçları arasında ayrım yapmayan kullanıcılar ffmpegve avconv.
  2. Zayıf ifadeli kullanıcılar, libav'ları kullanmaya çalıştıklarında mesaj alırlar ffmpeg.

FFmpeg vs ffmpegve libav vsavconv

  • FFmpeg proje adıdır. ffmpegkomut satırı aracının adıdır.
  • libav proje adıdır. avconvkomut satırı aracının adıdır. Kısa bir süre için libav da vardı ffmpeg.

Kullanıcılar genellikle "araç" tartışıldığı zaman "proje" olduğunu düşünürler ki ...

Zayıf ifadeli bir mesaj

Öyleyse, bana söyleyebilecekler ... öğesinden öğrendiğimiz gibi , libav FFmpeg'den çatallanırken ayrıca geçici olarak sürümlerini de verdiler ffmpeg. Bir libav üyesi olarak, Debian ve Ubuntu'daki ffmpeg sağlayıcısı, dağıtımı libav kullanmaya değiştirmeye karar verdi. Libav açısından bakıldığında en iyi yol buydu: büyük bir kullanıcı topluluğunu çatal kullanmaya zorlamak.

Ubuntu, libav'un ​​hem sürümünü hem de ffmpegyeniden adlandırılan araçlarını sağladığı geçiş dönemi boyunca geçiş yaptı avconv. Kullanıcılar libav's'ı kullanmaya çalıştıklarında ffmpegşu mesajı alırlar:

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

Bu durumda, mesajda belirtilen "ffmpeg", daha sonra kaldırılmış olan libav'ın geçici versiyonuydu (mesaj gibi). FFmpeg ve arasındaki farkı hatırlıyor ffmpegmusunuz? Elbette bu mesaj, anlaşılır bir şekilde proje ve araç arasında ayrım yapamayan birçok kullanıcının kafasını karıştırdı; özellikle, dağıtımlarının bir switcharoo yaptığını bilmeyen Ubuntu kullanıcıları veya libav'u hiç duymamış olan kullanıcılar. Libav, kullanıcıların bunu düşünmeye niyetli olup olmadığını bilmiyorum, ama muhtemelen bu yan etkiden keyif aldılar.

Bazı Ubuntu kullanıcıları mesajın çok yanıltıcı olduğunu düşündü ve daha sonra olarak değiştirildi:

***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).

Bence küçük bir gelişme, ancak yeterince açık değil gibi hissediyorum.

Hangisini kullanırım?

Hangisi kullanacağınızı kimse söyleyemez. Kullanıcılar için en büyük fark, FFmpeg'in libav'dan bir çok komisyonu birleştirmesidir, ancak libav, FFmpeg'in var olmadığını ve sadece FFmpeg'den kiraz seçtiklerini iddia ediyor gibi görünmektedir.

Sıradan kullanıcılar için çok büyük farklılıklar olmamalıdır. FFmpeg kullanmak isteyen Ubuntu kullanıcıları için, FFmpeg ve x264'ü Nasıl Derleyin , Jon Severinsson'un FFmpeg PPA'sını kullanın veya FFmpeg indirme sayfasından basit bir statik ikili dosya elde edin .

Daha fazla bilgi için bkz . FFmpeg / Libav durumu .


27
Kötü ifadeli bir mesajın ötesinde, yanlış anlaşılıyor. FFmpeg hiç bir şekilde gelişmeyi durdurmadı, aslında FFmpeg'in LibAV'dan çok daha büyük bir topluluğu var ... Ubuntu bakımcıları, kullanıcıları FAVP’nin öldüğü inancından LibAV’ı kullanma konusunda kandırmak için bu mesajı yaptılar. % 100 saf kötülük.
Marcus J,

1
avconv, LADSPA'yı desteklemiyor
Vassilis

5
@MarcusJ ... teknik olarak debian koruyuculardı. Ama evet, katılıyorum; Bu aldatıcı.
Wyatt8740

Olmadığı yerde "Kötü ifadeli bir mesaj" ifadesi için aşağı oy verildi. Bu kasıtlı bir yanlışlıktı.
Anwar

1
@Anwar Evet, öyle görünüyordu. Bu yüzden "kötü ifade" demiştim, ama sanırım kötü ifade edildi.
llogan

32

Güncelleme (2016 başlarında)

  • Olasılıklar ffmpeg lehine kalıyor. Dağıtımların çoğu geri döndü / geri döndü ffmpeg ( Gentoo , Debian )
  • Ffmpeg'in pratik avantajlarından biri, ikili platformların birçok platform için geniş kapsamlı olmasıdır. Statik libs / dinamik libs / binaries için googling, linux, mac, windows, ios ve android için ffmpeg için iyi sonuçlar verirken, sadece libav için linux ve windows yapıları bulabilirim. C / makefiles ile ilgili deneyiminiz azsa, bu önemli bir nokta olabilir.

Mevcut durum (2015 ortası)

FFmpeg'e bağlı kalmak daha iyi görünüyor. Bütün durum oldukça dağınık ve çirkin. Birkaç gün önce çatal okumaya başladım. Tüm dramayı yok sayarak, işte gerçekler gibi görünüyor:

  • FFmpeg libav'daki değişiklik kümelerini birleştirirken, libav bunu yapmak konusunda isteksizdir (bkz. Debian tartışması ).
  • Chrome, ffmpeg kullanıyor ve google güvenli hale getirmek için ciddi çaba sarfetti. libav da bu değişiklikleri içeriyor, ancak daha yavaş bir hızda ( google blog yazısı )
  • Libav bazıları (düşerken FFmpeg, mümkün olduğunca çok sayıda codec tutmaya çalışır libav posta listesi , bir libav dev Yayının )
  • FFmpeg topluluğu libav'dan daha büyüktür ve en özel geliştirici (michael niedermayer) FFmpeg ile sabitlenmiştir ( istatistiklere dayanır )
  • FFmpeg için ubuntu / debian yöneticileri libav çatalının bir parçasıydı. ffmpeg'in kullanımdan kaldırıldığını ima ederek bazı komut satırı araçlarına kullanım dışı bırakma mesajları eklediler. Bu çok karışıklığa neden oldu. hem Debian ve ubuntu Ffmpeg dönüyorsunuz.

Google Michael Niedermayer'in başına gelmiştim ve istifa ettiği bu yazı ile bitirdim.
bzeaman

1
@bzeaman evet, bununla karşılaştığımı hatırlıyorum. ama yine de günde ortalama 2 birleşme / taahhütte görünüyor: git.videolan.org/…
kritzikratzi

hmm deb içinde yükleme adayı yok. Şimdi yerini ne değiştirdi?
Stígandr

nvm akılda kaldı libav-tools
Stígandr

1
Niedermayer çatalı nedeni oldu. Bu çok değişti dedi.
Ismael Luceno

9

Gittiğiniz zaman burada en son güncelleme Eylül 2012 (birkaç ay önce) olduğunu göreceksiniz.

Öyle görünüyor bu şu an için Ubuntu ve Debian sadece belirli söylüyor.

Bir süre önce ffmpeg, ffmpeg ve libav adı altında iki forta bölündü.

Debian dağıtımındaki libav çatalını takip ediyor ve yaklaşmakta olan bir yükleme işleminde / usr / bin / ffmpeg binasının yerini / usr / bin / avconv alacak.

Bildiğim kadarıyla hemen geçmek gerekli değildir, ancak Winff her iki ikiliye izin verecek şekilde yükseltilmelidir (Debian açısından, avconv tercihiyle). Tercihlerde ikilinin konumunu ayarlayabileceğinizi biliyorum, ancak konum ayarıyla Winff'in uygun ikili dosyayı bulabilmesi gerektiğini düşünüyorum.

Gelecekte de Windows ve diğer dağıtımların bu sorundan etkilenebileceğini düşünüyorum.

Aynı olup olmadığına ilişkin sorunuzu yanıtlamak için:

Yerel kasamda doğru ikili kod için çekler yaptım, ancak okuma 1 , avconv ve ffmpeg arasında bazı tutarsızlıklar olduğunu görüyorum. Bu konu daha büyük, çünkü önceden ayarlanmış dosyanın ayarlanması ve özellikle komut satırını oluşturma şeklimizin değişmesi gerekecek. Giriş dosyasında çalışan seçeneklerin "-i" giriş dosyasından ÖNCE gitmesi gerekir.

Lütfen bunun Windows sürümüne özel olabileceğini unutmayın. Bu Linux sürümü ile ilgili gönderildi:

FFmpeg ses / video dönüştürme aracı artık AVConv olarak biliniyor (bence daha iyi bir isim). Bu yüzden "ffmpeg" komut satırı aracı eski ve "avconv" kullanılmalıdır. Fark ettim ki tüm parametreler aynı kaldı, ancak daha fazla araştırma yapılması gerekiyor. BDT'de bazı değişikliklerin yapılması gerekir.

Görevler:

AVConv programını CIS çalıştıran makinelere yükleyin. Genellikle avconv ffmpeg'i (Ubuntu'da çalıştı; Debian için test edilmedi) güncelliyor gibi görünmelidir. "Ffmpeg" yerine cis / api / ffmpeg.py, FFmpegTranscoder sınıfını, çalıştırılabilir dönüştürme aracını temsil eden alan prog_bin alanını "avconv" ile değiştirin. Refactor dosya isimleri, sınıf isimleri, metot isimleri, "FFmpeg" veya "ffmpeg" içeren değişken isimler vs., AVConv içerecek şekilde. Eclipse benzeri bir IDE bunu otomatik olarak yapabilir. Ölçek! Sorunlar fark edilirse, hata ayıklama!


9
"Ffmpeg modası geçmiş ve avconv kullanılmalı" yazan yazıya kesinlikle katılmıyorum.
slhck

@slhck Bir projeyi terk ederken standart bir uygulama gibi görünüyor. Ana dalı düşünmek için kandırdığınız kullanıcılar eski, çatalınız için daha iyidir.
kullanıcı253751
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.