Apa perbedaan dan persamaan antara ffmpeg, libav, dan avconv?

246

Ketika saya menjalankan ffmpegdi Ubuntu, itu menunjukkan:

$ ffmpeg 
ffmpeg version v0.8, Copyright (c) 2000-2011 the Libav developers
  built on Feb 28 2012 13:27:36 with gcc 4.6.1
This program is not developed anymore and is only provided for compatibility. Use avconv instead (see Changelog for the list of incompatible changes).

Atau itu menunjukkan (tergantung pada versi Ubuntu):

$ ffmpeg
ffmpeg version 0.8.5-6:0.8.5-0ubuntu0.12.10.1, Copyright (c) 2000-2012 the Libav developers
  built on Jan 24 2013 14:49:20 with gcc 4.7.2
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.

Saya menemukan avconv di http://libav.org . Saya hanya bingung oleh mereka.

Mengapa
sumber
1
Ini menyiratkan bahwa Anda memberikan argumen baris perintah yang salah.
Dipan Mehta
18
This program is not developed anymore and is only provided for compatibility. Use avconv instead
mengapa
1
Apa yang sedang Anda coba lakukan? ffmpegkebanyakan adalah library dan ffmpegcommandline utama lebih untuk mendemonstrasikan fitur-fiturnya (meskipun tidak masalah jika Anda menggunakannya). Jika Anda ingin menggunakan hanya sebagai perintah, ada banyak aplikasi yang menggunakan ffmpeg untuk melakukan apa yang ingin Anda lakukan.
Dipan Mehta
19
Ada penjelasan yang bermanfaat tentang keseluruhan kesepakatan di blog.pkh.me/p/13-the-ffmpeg-libav-situation.html
Tronic
4
Saya tidak bisa memberi tahu Anda semua perbedaannya, tetapi: avconv -ss 00:01:42 -t 00:00:32 -i sourcefilename -acodec copy targetfilename tidak berfungsi, dan ffmpeg -ss 00:01:42 -t 00:00 : 32 -i sourcefilename -acodec copy targetfilename berfungsi seperti yang diharapkan meskipun sesuai dengan dokumentasi

Jawaban:

472

Pesan yang membingungkan

Pesan-pesan ini agak menyesatkan dan dapat dipahami sebagai sumber kebingungan. Versi Ubuntu yang lebih lama menggunakan Libav yang merupakan cabang dari proyek FFmpeg. FFmpeg kembali di Ubuntu 15.04 "Vivid Vervet".

Garpu pada dasarnya adalah hasil yang tidak ramah dari kepribadian yang saling bertentangan dan gaya pengembangan dalam komunitas FFmpeg. Perlu dicatat bahwa pengelola Debian / Ubuntu beralih dari FFmpeg ke Libav atas kemauannya sendiri karena terlibat dengan garpu Libav.

Yang asli ffmpegvs yang palsu

Untuk sementara Libav dan FFmpeg secara terpisah mengembangkan versi mereka sendiri ffmpeg.

Libav kemudian berganti nama Bizarro mereka ffmpeguntuk avconvmenjauhkan diri dari proyek FFmpeg. Selama masa transisi pesan "tidak dikembangkan lagi" ditampilkan untuk memberi tahu pengguna agar mulai menggunakan avconvalih-alih versi palsu mereka ffmpeg. Ini membingungkan pengguna untuk berpikir bahwa FFmpeg (proyek) sudah mati, yang tidak benar. Pilihan kata yang buruk, tapi saya tidak bisa membayangkan Libav tidak mengharapkan respons seperti itu dari pengguna umum.

Pesan ini dihapus dari hulu ketika " ffmpeg" palsu akhirnya dihapus dari sumber Libav, tetapi, tergantung pada versi Anda, itu masih dapat muncul di Ubuntu karena sumber Libav yang digunakan Ubuntu adalah dari masa transisi ffmpeg-ke-avconv.

Pada Juni 2012, pesan tersebut diucapkan ulang untuk paket tersebut libav - 4:0.8.3-0ubuntu0.12.04.1. Sayangnya pesan "usang" baru telah menyebabkan kebingungan pengguna tambahan.

Dimulai dengan Ubuntu 15.04 "Vivid Vervet", FFmpeg ini ffmpegadalah kembali repositori lagi.

libav vs Libav

Untuk lebih memperumit masalah, Libav memilih nama yang secara historis digunakan oleh FFmpeg untuk merujuk ke perpustakaannya (libavcodec, libavformat, dll). Misalnya milis pengguna libav , untuk pertanyaan dan diskusi tentang penggunaan perpustakaan FFmpeg, tidak terkait dengan proyek Libav.

Bagaimana cara membedakannya

Jika Anda menggunakan avconvmaka Anda menggunakan Libav. Jika Anda menggunakan, ffmpegAnda bisa menggunakan FFmpeg atau Libav. Lihat baris pertama di output konsol untuk mengetahui perbedaannya: pemberitahuan hak cipta akan menyebutkan FFmpeg atau Libav.

Kedua, skema penomoran versi berbeda. Setiap pustaka FFmpeg atau Libav berisi version.htajuk yang menunjukkan nomor versi. FFmpeg akan berakhir dalam tiga digit, seperti 57.67. 100 , dan Libav akan berakhir dalam satu digit seperti 57,67. 0 . Anda juga dapat melihat nomor versi pustaka dengan menjalankan ffmpegatau avconvdan melihat output konsol.

Jika Anda ingin menggunakan yang asli ffmpeg

Ubuntu 15.04 "Vivid Vervet" atau lebih baru

Yang asli ffmpegada di repositori, sehingga Anda dapat menginstalnya dengan:

apt-get install ffmpeg

Untuk versi Ubuntu yang lebih lama

Pilihan Anda adalah:

Metode-metode ini tidak mengganggu, reversibel, dan tidak akan mengganggu sistem atau paket repositori apa pun.

Pilihan lain yang memungkinkan adalah meningkatkan ke Ubuntu 15.04 "Vivid Vervet" atau yang lebih baru dan hanya menggunakan ffmpegdari repositori.

Lihat juga

Untuk artikel blog yang menarik tentang situasi tersebut, serta diskusi tentang perbedaan teknis utama antara proyek, lihat Situasi FFmpeg / Libav .

llogan
sumber
89
sepertinya itu masalah pribadi
mirza
1
Jika bahkan setelah menginstal ffmpeg nyata Anda tidak dapat membuatnya berfungsi. Anda harus menghapus ffmpeg default yang dikirimkan dengan ubuntu sebagai libav-tools, lihat: askubuntu.com/questions/162740/how-do-i-unun-menginstal-ffmpeg .
user568109
@ user568109 Tergantung bagaimana Anda menginstal ffmpeg. Lihat Cara Mengkompilasi FFmpeg di Ubuntu, Debian, atau Mint atau cukup gunakan Linux build offfmpeg . Salah satu dari metode ini harus berfungsi jika paket repositori juga diinstal.
llogan
1
Saya memang membangun ffmpeg tetapi ketika menjalankan ffmpeg dari terminal default yang dikirimkan berjalan dan melakukan apt-get remove ffmpeg tidak menghapusnya. Jadi saya meninggalkan pesan untuk mereka yang terjebak dengan masalah ini, hanya untuk menghilangkan kebingungan. Itu dikirim sebagai libav-tools.
user568109
Sepertinya beberapa sistem "merek dagang" diperlukan di komunitas open-source untuk menghindari situasi ini !!!
rkachach