ทำไมฉันถึงเลือก Libav มากกว่า FFmpeg หรือมีความแตกต่างกัน?


72

จากสิ่งที่ฉันเห็นมันดูเหมือนกับว่า Libav avconvคิดว่าจะเป็นตัวตายตัวแทนffmpeg- ถูกต้องไหม

หากเป็นจริงทำไมเป็นเช่นนั้น อะไรคือสิ่งที่ libav ทำได้ดีกว่าและทำไมฉันต้องเลือกมากกว่า ffmpeg

ฉันมาถึง "ปัญหา" นี้ในขณะที่ติดตั้ง Ubuntu 12.04.1 LTS ใน VM และเมื่อฉันติดตั้ง ffmpeg จะมีข้อความแจ้งว่า mit ffmpeg เลิกใช้แล้วและฉันคิดว่า "wtf?" เป็นครั้งแรก

ถ้าฉันใช้avconvฉันจะสามารถย้ายสคริปต์ของฉันขึ้นอยู่กับ ffmpeg มากกว่าหรือน้อยกว่าง่ายต่อการ libav? ฉันส่วนใหญ่ใช้สำหรับการเขียนข้อมูล meta และทำการแปลงเสียง (wav, flac, vorbis, mp3, aac)


1
ffmpeg ไม่ล้าสมัยอย่างแน่นอนมันเป็นสิ่งที่ดีที่สุดในการผสมพันธุ์สำหรับสิ่งที่มันทำ
James Campbell

คำตอบ:


94

ครั้งแรกของทุกคนเห็นใครสามารถบอกความแตกต่างและความสัมพันธ์ระหว่าง ffmpeg, libav และ avconv ความสับสนส่วนใหญ่เป็นผลมาจาก:

  1. ผู้ใช้งานไม่แตกต่างระหว่างโครงการ FFmpeg และ libav และเครื่องมือบรรทัดคำสั่งของตนและffmpegavconv
  2. ข้อความคำพูดไม่ดี (s) ผู้ได้รับเมื่อพวกเขาพยายามที่จะใช้ ffmpeglibav

FFmpeg vs ffmpegและ libav vsavconv

  • FFmpeg เป็นชื่อโครงการ ffmpegเป็นชื่อของเครื่องมือบรรทัดคำสั่ง
  • libav เป็นชื่อโครงการ avconvเป็นชื่อของเครื่องมือบรรทัดคำสั่ง สำหรับ libav ffmpegระยะเวลาอันสั้นนอกจากนี้ยังมี

ผู้ใช้มักคิดว่า "โครงการ" เมื่อมีการพูดถึง "เครื่องมือ" ซึ่งนำไปสู่ ​​...

ข้อความที่พูดไม่ดี

ดังนั้นเมื่อเราเรียนรู้จากลิงก์ใครสามารถบอกฉันได้ ...เมื่อ libav แยกจาก FFmpeg พวกเขาก็จัดหาเวอร์ชันของffmpegมันชั่วคราว ในฐานะสมาชิกของ libav ผู้ดูแล ffmpeg ใน Debian และ Ubuntu จึงตัดสินใจเปลี่ยน distro เพื่อใช้ libav จากมุมมองของ libav นี่เป็นการย้ายที่ดีที่สุด: เพื่อบังคับให้ชุมชนผู้ใช้ขนาดใหญ่ใช้ส้อม

อูบุนตูเปลี่ยนในช่วงระยะเวลาเปลี่ยนผ่านเมื่อ libav จัดมาทั้งสองรุ่นของพวกเขาและเครื่องมือการเปลี่ยนชื่อของพวกเขาffmpeg avconvเมื่อผู้ใช้พยายามใช้ libav ffmpegพวกเขาได้รับข้อความต่อไปนี้:

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

ในกรณีนี้ "ffmpeg" ที่กล่าวถึงในข้อความเป็นเวอร์ชันชั่วคราวของ libav ซึ่งถูกลบในภายหลัง (เช่นเดียวกับข้อความ) จำความแตกต่างระหว่าง FFmpeg และffmpeg? แน่นอนว่าข้อความนี้ทำให้ผู้ใช้หลายคนสับสนอย่างเข้าใจไม่ได้แยกความแตกต่างระหว่างโครงการและเครื่องมือ โดยเฉพาะผู้ใช้ Ubuntu ที่ไม่ทราบว่า distro ทำ switcharoo หรือผู้ใช้ที่ไม่เคยได้ยิน libav ฉันไม่ทราบว่า libav ต้องการให้ผู้ใช้คิดเช่นนี้หรือไม่ แต่พวกเขาอาจชอบผลข้างเคียงนี้

ผู้ใช้ Ubuntu บางคนคิดว่าข้อความนั้นทำให้เข้าใจผิดเกินไปและเปลี่ยนเป็น:

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

การปรับปรุงเล็กน้อยในความคิดของฉัน แต่ฉันรู้สึกราวกับว่ามันไม่ชัดเจนพอ

ฉันจะใช้อันไหนดี

ไม่มีใครสามารถบอกได้ว่าจะใช้อันไหน ความแตกต่างที่สำคัญสำหรับผู้ใช้คือ FFmpeg ผสานการกระทำหลายอย่างจาก libav แต่มันก็ไม่ได้กลับมากันและกันเนื่องจาก libav ดูเหมือนจะแกล้งทำเป็นว่า FFmpeg ไม่มีอยู่จริงและมีเพียงเชอร์รี่หยิบจาก FFmpeg

สำหรับผู้ใช้ทั่วไปไม่ควรมีความแตกต่างอย่างมาก สำหรับผู้ใช้ Ubuntu ที่ต้องการใช้ FFmpeg คุณสามารถรวบรวมได้โดยทำตามวิธีการรวบรวม FFmpeg และ x264ใช้FFmpeg FFmpeg ของ Jon Severinssonหรือรับไบนารีคงที่แบบง่ายจากหน้าดาวน์โหลด FFmpeg

สำหรับข้อมูลเพิ่มเติมโปรดดูที่สถานการณ์ FFmpeg / Libav


27
มันเป็นมากกว่าข้อความที่พูดไม่ดี แต่มันผิดพลาด FFmpeg ไม่ได้หยุดการพัฒนาเลยอันที่จริง FFmpeg มีชุมชนที่ใหญ่กว่า LibAV ... ผู้ดูแล Ubuntu ทำข้อความนั้นเพื่อหลอกให้ผู้ใช้ใช้ LibAV จากความเชื่อที่ผิดที่ FFmpeg ตาย มันเป็นความอาฆาตพยาบาทบริสุทธิ์ 100%
MarcusJ

1
avconv ไม่สนับสนุน LADSPA ด้วย
Vassilis

5
@MarcusJ ... ในทางเทคนิคแล้วมันเป็นผู้ดูแลเดเบียน แต่ใช่ฉันเห็นด้วย มันหลอกลวง
Wyatt8740

Downvoted สำหรับวลี "ข้อความที่มีคำพูดไม่ดี" ซึ่งไม่ได้เป็นเช่นนั้น มันเป็นการกระทำที่ผิดโดยเจตนา
อันวาร์

1
@ อันวาร์ใช่มันเป็นอย่างนั้น นั่นเป็นเหตุผลที่ฉันบอกว่ามันเป็น "คำพูดที่ไม่ดี" แต่ฉันคิดว่ามันเป็นคำที่ไม่ดี
llogan

32

อัปเดต (ต้นปี 2016)

  • อัตราต่อรองอยู่ในความโปรดปรานของ ffmpeg distros ส่วนใหญ่เปลี่ยนกลับ / เปลี่ยนกลับเป็น ffmpeg ( Gentoo , Debian )
  • ข้อได้เปรียบอย่างหนึ่งของ ffmpeg คือความสามารถในการรองรับไบนารีสำหรับแพลตฟอร์มจำนวนมาก Googling สำหรับ libs แบบคงที่ / แบบไดนามิก libs / ไบนารีให้ผลลัพธ์ที่ดีสำหรับ linux, mac, windows, ios และ android สำหรับ ffmpeg ในขณะที่ฉันสามารถหา linux และ windows builds สำหรับ libav เท่านั้น นี่อาจเป็นจุดสำคัญถ้าคุณมีประสบการณ์น้อยกับ C / makefiles

สถานการณ์ปัจจุบัน (กลางปี ​​2558)

ดูเหมือนว่าจะดีกว่าถ้าใช้ FFmpeg สถานการณ์ทั้งหมดค่อนข้างยุ่งและน่าเกลียด ฉันเพิ่งเริ่มอ่านบนส้อมไม่กี่วันที่ผ่านมา ไม่สนใจละครทั้งหมดนี่คือสิ่งที่ดูเหมือนเป็นข้อเท็จจริง:

  • FFmpeg รวมชุดการเปลี่ยนแปลงจาก libav ในขณะที่ libav ไม่เต็มใจที่จะทำเช่นนั้น (ดูdebian อภิปราย )
  • Chrome ใช้ ffmpeg และ Google ได้ใช้ความพยายามอย่างจริงจังในการทำให้ปลอดภัย libav กำลังรวมการเปลี่ยนแปลงเหล่านั้นไว้ด้วย แต่ก็ช้าลง ( google blog post )
  • FFmpeg พยายามที่จะให้ตัวแปลงสัญญาณให้มากที่สุดเท่าที่เป็นไปได้ในขณะที่ libav ลดลงบางคน ( รายชื่อผู้รับจดหมาย libav , โพสต์จาก dev libav )
  • ชุมชน FFmpeg มีขนาดใหญ่กว่า libav และนักพัฒนาซอฟต์แวร์ที่ทุ่มเทที่สุด (ไมเคิลนิเดอเรอร์) ติดอยู่กับ FFmpeg (ส่งสถิติ )
  • ผู้ดูแล ubuntu / debian สำหรับ FFmpeg เป็นส่วนหนึ่งของทางแยก libav พวกเขาเพิ่มข้อความที่เลิกใช้ลงในเครื่องมือบรรทัดคำสั่งบางคำบอกเป็นนัยว่า ffmpeg เลิกใช้แล้ว สิ่งนี้ทำให้เกิดความสับสนมาก ทั้งเดเบียนและอูบุนตูกำลังสลับกลับไปเป็น ffmpeg

ฉันเกิดขึ้นกับ Google Michael Niedermayer และจบลงด้วยการโพสต์นี้ซึ่งเขาลาออก
bzeaman

1
@bzeaman ใช่ฉันจำได้ว่าเจอสิ่งนี้ แต่ดูเหมือนว่าเขาจะเฉลี่ยอยู่ที่การรวม 2 ครั้ง / คอมมิทต่อวัน: git.videolan.org/ …
kritzikratzi

hmm ไม่มีตัวเลือกการติดตั้งใน deb ตอนนี้แทนที่อะไรแล้ว?
Stígandr

NVM ใจได้มัน libav เครื่องมือ
Stígandr

1
Niedermayer เป็นสาเหตุของการแยก ที่กล่าวว่าเขาเปลี่ยนไปมาก
Ismael Luceno

9

เมื่อคุณไปที่นี่คุณจะเห็นว่าการอัปเดตล่าสุดคือกันยายน 2012 (ไม่กี่เดือนที่ผ่านมา)

ดูเหมือนว่านี่จะเป็นเฉพาะอูบุนตูและเดเบียนในเวลานี้

บางเวลาที่ผ่านมา ffmpeg แบ่งออกเป็นสองส้อมภายใต้ชื่อ ffmpeg และ libav

Debian กำลังติดตาม libav ในการแจกจ่ายและในการอัปโหลดที่จะเกิดขึ้นไบนารี / usr / bin / ffmpeg จะถูกแทนที่ด้วย / usr / bin / avconv

เท่าที่ฉันรู้ว่ามันไม่จำเป็นที่จะต้องเปลี่ยนทันที แต่ Winff ควรได้รับการอัพเกรดเพื่ออนุญาตสำหรับไบนารีทั้งสอง (จากมุมมอง Debian โดยมีการตั้งค่าสำหรับ avconv) ฉันรู้ว่าคุณสามารถตั้งค่าตำแหน่งของไบนารีในการตั้งค่า แต่ฉันคิดว่าด้วยการตั้งค่าตำแหน่ง Winff ควรจะสามารถหาไบนารีที่เหมาะสม

ฉันคิดว่าในอนาคต Windows และการกระจายอื่น ๆ อาจได้รับผลกระทบจากปัญหานี้

ในการตอบคำถามของคุณเกี่ยวกับว่ามันเหมือนกันหรือไม่:

ฉันใช้การตรวจสอบไบนารีที่ถูกต้องในการชำระเงินในเครื่องของฉัน แต่เมื่ออ่าน1ฉันเห็นว่ามีความไม่สอดคล้องกันระหว่าง avconv และ ffmpeg ปัญหานั้นใหญ่กว่าเนื่องจากไฟล์ที่ตั้งไว้จะต้องมีการปรับและโดยเฉพาะอย่างยิ่งวิธีที่เราสร้างบรรทัดคำสั่งจะต้องมีการเปลี่ยนแปลง ตัวเลือกที่ทำงานกับไฟล์อินพุตจะต้องไปก่อนไฟล์อินพุต "-i"

โปรดทราบว่านี่อาจเป็นเวอร์ชั่นเฉพาะของ Windows สิ่งนี้ถูกโพสต์เกี่ยวกับเวอร์ชั่น Linux:

เครื่องมือแปลงเสียง / วิดีโอ FFmpeg ตอนนี้รู้จักกันในชื่อ AVConv (ชื่อที่ดีกว่าในความคิดของฉัน) ดังนั้นเครื่องมือบรรทัดคำสั่ง "ffmpeg" จึงล้าสมัยและควรใช้ "avconv" เท่าที่ฉันสังเกตเห็นพารามิเตอร์ทั้งหมดยังคงเหมือนเดิม แต่ควรทำการตรวจสอบเพิ่มเติม การแก้ไขบางอย่างจำเป็นต้องทำใน CIS

งาน:

ติดตั้ง AVConv บนเครื่องที่รัน CIS โดยปกติแล้ว avconv จะปรากฏขึ้นเพื่ออัปเดต ffmpeg (ทำงานได้บน Ubuntu; ไม่ผ่านการทดสอบสำหรับ Debian) แทนที่ "ffmpeg" ด้วย "avconv" ใน cis / api / ffmpeg.py, คลาส FFmpegTranscoder, ฟิลด์ prog_bin ซึ่งแสดงถึงเครื่องมือการแปลงที่ปฏิบัติการได้ ชื่อไฟล์ Refactor ชื่อคลาสชื่อเมธอดชื่อตัวแปร ฯลฯ ที่มี "FFmpeg" หรือ "ffmpeg" ซึ่งประกอบด้วย AVConv IDE อย่าง Eclipse สามารถทำสิ่งนี้ได้โดยอัตโนมัติ ทดสอบ! หากพบปัญหาให้แก้ปัญหา!


9
ฉันไม่เห็นด้วยอย่างยิ่งกับโพสต์ที่ระบุว่า "ffmpeg ล้าสมัยและควรใช้ avconv"
slhck

@slhck ดูเหมือนว่าจะเป็นการฝึกมาตรฐานเมื่อคุณฟอร์กโครงการ ผู้ใช้ยิ่งคุณสามารถหลอกให้คิดว่าสาขาหลักล้าสมัยดีกว่าสำหรับส้อมของคุณ
user253751
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.