อะไรคือความแตกต่างและความคล้ายคลึงกันระหว่าง ffmpeg, libav และ avconv?


246

เมื่อฉันใช้งานffmpegUbuntu มันจะแสดง:

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

หรือมันแสดงให้เห็น (ขึ้นอยู่กับเวอร์ชั่นของ 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.

ผมพบว่า avconv บนhttp://libav.org ฉันแค่งุนงงกับพวกเขา


1
หมายความว่าคุณให้อาร์กิวเมนต์บรรทัดคำสั่งผิด
Dipan Mehta

18
This program is not developed anymore and is only provided for compatibility. Use avconv instead
ทำไม

1
คุณพยายามจะทำอะไร? ffmpegส่วนใหญ่เป็นffmpegไลบรารี่และcommandline หลักนั้นมีไว้สำหรับสาธิตคุณสมบัติของมันมากกว่า หากคุณต้องการใช้เป็นคำสั่งเท่านั้นมีหลายแอปพลิเคชันที่ใช้ ffmpeg เพื่อทำสิ่งที่คุณต้องการ
Dipan Mehta

19
มีคำอธิบายที่เป็นประโยชน์ของข้อตกลงทั้งหมดที่blog.pkh.me/p/13-the-ffmpeg-libav-situation.html
Tronic

4
ฉันไม่สามารถบอกความแตกต่างทั้งหมดให้คุณได้ แต่: avconv -ss 00:01:42 -t 00:00:32 -i sourcefilename -acodec คัดลอก targetfilename ไม่ทำงานและ ffmpeg -ss 00:01:42 -t 00:00 : 32 -i sourcefilename -acodec copy targetfilename ทำงานตามที่คาดไว้แม้ว่าเอกสารจะตรงกัน

คำตอบ:


473

ข้อความที่สับสน

ข้อความเหล่านี้ค่อนข้างทำให้เข้าใจผิดและเข้าใจได้ว่าเป็นแหล่งของความสับสน Ubuntu รุ่นเก่าใช้ Libav ซึ่งเป็นส่วนหนึ่งของโครงการ FFmpeg FFmpeg ส่งคืนใน Ubuntu 15.04 "Vivid Vervet"

ทางแยกนั้นเป็นผลลัพธ์ที่ไม่เป็นมิตรต่อการมีบุคลิกที่ขัดแย้งกันและรูปแบบการพัฒนาภายในชุมชน FFmpeg เป็นที่น่าสังเกตว่าผู้ดูแล Debian / Ubuntu เปลี่ยนจาก FFmpeg เป็น Libav ด้วยตัวเขาเองเนื่องจากมีส่วนเกี่ยวข้องกับทางแยกของ Libav

ของจริงffmpegเทียบกับของปลอม

ในขณะที่ทั้งสอง Libav และ FFmpeg ffmpegพัฒนาแยกรุ่นของตัวเอง

Libav แล้วเปลี่ยนชื่อ Bizarro ของพวกเขาffmpegที่จะavconvไปให้ไกลตัวเองจากโครงการ FFmpeg ในช่วงระยะเวลาที่เปลี่ยนแปลง "ไม่ได้พัฒนาอีกต่อไป" ข้อความแสดงที่จะบอกให้ผู้ใช้สามารถเริ่มต้นใช้แทนรุ่นปลอมของพวกเขาavconv ffmpegผู้ใช้สับสนในการคิดว่า FFmpeg (โครงการ) นั้นตายแล้วซึ่งไม่เป็นความจริง ตัวเลือกที่ไม่เหมาะสม แต่ฉันไม่สามารถจินตนาการได้ว่า Libav ไม่ได้คาดหวังการตอบสนองดังกล่าวจากผู้ใช้ทั่วไป

ข้อความนี้ถูกลบออกในขั้นต้นเมื่อปลอม " ffmpeg" ถูกลบออกจากแหล่ง Libav ในที่สุด แต่ขึ้นอยู่กับรุ่นของคุณว่ามันยังสามารถแสดงใน Ubuntu ได้เพราะแหล่ง Libav ที่ Ubuntu ใช้อยู่นั้นมาจากช่วงการเปลี่ยน ffmpeg-to-avconv

ในเดือนมิถุนายน 2012, ข้อความเป็นอีกครั้งที่คำพูดlibav - 4:0.8.3-0ubuntu0.12.04.1สำหรับแพคเกจ น่าเสียดายที่ข้อความ "เลิกใช้" ใหม่ทำให้ผู้ใช้สับสนมากขึ้น

เริ่มต้นด้วย Ubuntu 15.04 "Vervet สดใส" FFmpeg ของffmpegคือกลับมาอยู่ในที่เก็บอีกครั้ง

libav vs Libav

เพื่อเพิ่มความซับซ้อนในเรื่องต่อไป Libav เลือกชื่อที่ใช้ในอดีตโดย FFmpeg เพื่ออ้างถึงไลบรารีของมัน (libavcodec, libavformat ฯลฯ ) ตัวอย่างเช่นรายการส่งเมลของผู้ใช้ libavสำหรับคำถามและการอภิปรายเกี่ยวกับการใช้ไลบรารี FFmpeg ไม่เกี่ยวข้องกับโครงการ Libav

วิธีบอกความแตกต่าง

หากคุณกำลังใช้งานavconvอยู่แสดงว่าคุณกำลังใช้ Libav หากคุณกำลังใช้ffmpegคุณอาจใช้ FFmpeg หรือ Libav อ้างถึงบรรทัดแรกในเอาต์พุตคอนโซลเพื่อบอกความแตกต่าง: การแจ้งเตือนลิขสิทธิ์จะพูดถึง FFmpeg หรือ Libav

ประการที่สองรูปแบบการกำหนดหมายเลขรุ่นแตกต่างกัน แต่ละไลบรารี FFmpeg หรือ Libav มีversion.hส่วนหัวซึ่งแสดงหมายเลขรุ่น FFmpeg จะลงท้ายด้วยตัวเลขสามหลักเช่น 57.67 100และ Libav จะลงท้ายด้วยหนึ่งหลักเช่น 57.67 0 . คุณยังสามารถดูหมายเลขเวอร์ชันไลบรารี่ได้โดยการเรียกใช้ffmpegหรือavconvดูเอาต์พุตคอนโซล

หากคุณต้องการใช้งานจริง ffmpeg

Ubuntu 15.04 "Vivid Vervet" หรือใหม่กว่า

ของจริงอยู่ffmpegในที่เก็บดังนั้นคุณสามารถติดตั้งได้ด้วย:

apt-get install ffmpeg

สำหรับ Ubuntu รุ่นเก่า

ตัวเลือกของคุณคือ:

วิธีการเหล่านี้ไม่ล่วงล้ำย้อนกลับและจะไม่รบกวนระบบหรือแพคเกจพื้นที่เก็บข้อมูลใด ๆ

ตัวเลือกที่เป็นไปได้อีกอย่างหนึ่งคือการอัพเกรดเป็น Ubuntu 15.04 "Vivid Vervet" หรือใหม่กว่าและใช้ffmpegจากที่เก็บ

ยังดู

สำหรับบทความบล็อกที่น่าสนใจในสถานการณ์เช่นเดียวกับการอภิปรายเกี่ยวกับความแตกต่างทางเทคนิคที่สำคัญระหว่างโครงการให้ดูสถานการณ์ FFmpeg / Libav


89
ดูเหมือนว่ามันเป็นปัญหาส่วนตัว
mirza

1
หากแม้หลังจากติดตั้ง ffmpeg จริงคุณจะไม่สามารถใช้งานได้ คุณควรลบ ffmpeg เริ่มต้นมาพร้อมกับอูบุนตูเป็น libav เครื่องมือดู: askubuntu.com/questions/162740/how-do-i-uninstall-ffmpeg
user568109

@ user568109 ขึ้นอยู่กับวิธีที่คุณติดตั้ง ffmpeg ดูวิธีการคอมไพล์ FFmpeg บน Ubuntu, Debian หรือ Mintหรือใช้ลินุกซ์บิลffmpegด์ วิธีใดวิธีหนึ่งเหล่านี้ควรทำงานหากมีการติดตั้งแพ็คเกจที่เก็บ
llogan

1
ฉันสร้าง ffmpeg แต่เมื่อรัน ffmpeg จากเทอร์มินัลค่าเริ่มต้นที่จัดส่งหนึ่งรายการกำลังทำงานและทำการลบ apt-get ffmpeg ไม่ได้ลบออก ดังนั้นฉันจึงทิ้งข้อความไว้สำหรับผู้ที่ติดกับปัญหานี้เพื่อล้างความสับสน มันถูกจัดส่งเป็นเครื่องมือ libav
user568109

ดูเหมือนว่าจำเป็นต้องมีระบบ "เครื่องหมายการค้า" ในชุมชนโอเพนซอร์สเพื่อหลีกเลี่ยงสถานการณ์เหล่านี้ !!!
rkachach
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.