왜 FFmpeg 대신 Libav를 선택합니까, 아니면 차이가 있습니까?


72

내가 본 것에서 그것은 Libav의 avconv후계자가 될 것으로 생각되는 것처럼 보입니다. ffmpeg– 맞습니까?

그것이 사실이라면 왜 그렇습니까? libav가 정확히 무엇을 더 잘하고 있으며 왜 ffmpeg보다 그것을 선택하고 싶습니까?

VM에 Ubuntu 12.04.1 LTS를 설치하는 동안이 "문제"에 도달했으며 ffmpeg를 설치하면 mit ffmpeg가 더 이상 사용되지 않으며 "wtf?"

내가 사용하는 경우 avconv내가는 FFmpeg에 다소 쉽게 libav하기에 따라 내 스크립트를 마이그레이션 할 수 있습니까? 나는 주로 메타 데이터를 작성하고 오디오 변환 (wav, flac, vorbis, mp3, aac)을 위해 그것을 사용하고 있습니다.


1
ffmpeg는 확실히 쓸모없는 것이 아니며, 그것이하는 일에 대해 품종에서 거의 최고입니다.
제임스 캠벨

답변:


94

우선 ffmpeg, libav 및 avconv의 차이점과 관계를 말해 줄 수 있는 사람을 참조하십시오 . 많은 혼란은 다음과 같은 결과입니다.

  1. 사용자는 프로젝트는 FFmpeg 및 libav, 그리고 각각의 명령 줄 도구를 구별하지 ffmpegavconv.
  2. 말이 잘못 된 메시지는 libav를 사용하려고 할 때 나타납니다 ffmpeg.

FFmpeg vs ffmpeg및 libav vsavconv

  • FFmpeg는 프로젝트 이름입니다. ffmpeg명령 행 도구의 이름입니다.
  • libav는 프로젝트 이름입니다. avconv명령 행 도구의 이름입니다. 짧은 시간 동안 libav는 또한 ffmpeg.

사용자는 종종 "도구"에 대해 논의 할 때 "프로젝트"를 생각합니다.

잘못 표현 된 메시지

우리가 Who can tell ... 링크를 통해 알 수 있듯이 libav가 FFmpeg에서 분기되면 일시적으로의 버전도 제공했습니다 ffmpeg. libav의 멤버로서 데비안과 우분투의 ffmpeg 관리자는 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? 의 차이점을 기억하십시오 . 물론이 메시지는 프로젝트와 툴을 구분하지 않은 많은 사용자들을 혼란스럽게했다. 특히 그들의 배포판이 switcharoo를했는지 몰랐던 우분투 사용자 들이나 libav에 대해 들어 본 적이없는 사용자들. libav가 사용자가 이것을 생각하도록 의도했는지는 모르겠지만 아마도이 부작용을 즐겼을 것입니다.

일부 우분투 사용자는 메시지가 너무 오도되어 나중에 다음과 같이 변경되었다고 생각했습니다.

***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에서 체리를 선택하기 때문에 그다지 상호 적이 지 않습니다.

일반 사용자에게는 큰 차이가 없어야합니다. FFmpeg를 사용하려는 Ubuntu 사용자의 경우 FFmpeg 및 x264를 컴파일하는 방법 에 따라 컴파일 하거나 Jon Severinsson의 FFmpeg PPA 를 사용하거나 FFmpeg 다운로드 페이지 에서 링크 된 간단한 정적 바이너리를 얻을 수 있습니다.

자세한 정보 는 FFmpeg / Libav 상황을 참조하십시오 .


27
나쁜 말로 표현 된 메시지를 넘어선 것입니다. FFmpeg는 개발을 전혀 멈추지 않았습니다. 사실 FFmpeg는 LibAV보다 훨씬 더 큰 커뮤니티를 가지고 있습니다 ... 우분투 관리자는 FFmpeg가 죽었다는 잘못된 믿음으로 사용자가 LibAV를 사용하도록 속이는 메시지를 만들었습니다. 100 % 순수한 악의입니다.
MarcusJ

1
avconv는 LADSPA도 지원하지 않습니다
Vassilis

5
@MarcusJ ... 기술적으로는 데비안 관리자였습니다. 그러나 그렇습니다, 나는 동의합니다; 기만적입니다.
Wyatt8740

"잘못 표현 된 메시지"문구로 번역되지 않았습니다. 고의적 인 잘못이었습니다.
Anwar

1
@Anwar 그래, 그렇게 보였다. 그렇기 때문에 나는 그것이 "잘못 표현되었다"고 말했지만 그것이 잘못 표현 된 것 같습니다.
구호

32

업데이트 (2016 년 초)

  • 확률은 ffmpeg를 선호합니다. 대부분의 배포판은 다시 전환되거나 ffmpeg로 다시 전환됩니다 ( Gentoo , Debian )
  • ffmpeg의 실질적인 이점 중 하나는 많은 플랫폼에서 바이너리를 광범위하게 사용할 수 있다는 것입니다. 정적 라이브러리 / 동적 라이브러리 / 바이너리에 대한 인터넷 검색은 ffmpeg에 대한 Linux, mac, windows, ios 및 android에서 좋은 결과를 산출하지만 libav에 대한 Linux 및 Windows 빌드 만 찾을 수 있습니다. C / makefile에 대한 경험이 거의 없다면 이것은 중요한 포인트가 될 수 있습니다.

현재 상황 (2015 년 중반)

FFmpeg를 사용하는 것이 좋습니다. 전체 상황은 다소 지저분하고 추악합니다. 나는 며칠 전에 포크를 읽기 시작했습니다. 모든 드라마를 무시하고 사실은 다음과 같습니다.

  • FFmpeg는 libav의 변경 세트를 통합하는 반면 libav는 그렇게하기를 꺼려합니다 ( 데비안 토론 참조 )
  • Chrome은 ffmpeg를 사용하며 Google은 보안을 위해 많은 노력을 기울였습니다. libav도 이러한 변경 사항을 통합하고 있지만 속도가 느립니다 ( google 블로그 게시물 )
  • FFmpeg는 가능한 한 많은 코덱을 유지하려고 시도하지만 libav는 일부를 삭제 했지만 ( libav 메일 링리스트 , libav dev에서 게시 )
  • FFmpeg 커뮤니티는 libav보다 크며 가장 헌신적 인 개발자 (michael niedermayer)는 FFmpeg ( commit stats )를 고수했습니다.
  • FFmpeg의 우분투 / 데비안 관리자는 libav 포크의 일부였습니다. 그들은 ffmpeg가 더 이상 사용되지 않는다는 것을 암시하면서 일부 명령 줄 도구에 더 이상 사용되지 않는 메시지를 추가했습니다. 이것은 많은 혼란을 초래했습니다. 데비안우분투 모두 ffmpeg로 다시 전환 하고 있습니다.

나는 Google Michael Niedermayer에게 일을 마치고이 직책 을 마치고 사임했다.
bzeaman

1
@ bzeaman 예, 나는 이것을 발견 한 것을 기억합니다. :하지만 그는 여전히 2 병합에 평균 것으로 보인다 / 하루 커밋 git.videolan.org/...
kritzikratzi

음, deb에 설치 후보가 없습니다. 지금 무엇을 대체 했습니까?
Stígandr

nvm mind는 libav-tools를 얻었습니다
Stígandr

1
Niedermayer가 포크 의 이유 였습니다. 그는 많은 것을 바 꾸었습니다.
Ismael Luceno

9

여기 로 가면 가장 최근 업데이트가 2012 년 9 월 (몇 달 전)임을 알 수 있습니다.

것 같습니다 는이 시간에 우분투와 데비안 단지 특정 말한다.

얼마 전 ffmpeg는 ffmpeg와 libav라는 이름으로 두 개의 포크로 나뉩니다.

데비안은 배포판에서 libav 포크를 따르고 있으며 다음 업로드에서 / usr / bin / ffmpeg 바이너리는 / usr / bin / avconv로 대체됩니다.

내가 아는 한 즉시 전환 할 필요는 없지만 Wincon은 데비안 관점에서 avconv를 선호하여 두 바이너리를 허용하도록 업그레이드해야합니다. 환경 설정에서 바이너리 위치를 설정할 수 있다는 것을 알고 있지만 위치가 설정되면 Winff가 적절한 바이너리를 찾을 수 있어야한다고 생각합니다.

앞으로도 Windows 및 기타 배포판 이이 문제로 인해 발생할 수 있다고 생각합니다.

정확히 같은지 여부에 대한 질문에 대답하려면 다음을 수행하십시오.

로컬 체크 아웃에서 올바른 바이너리에 대한 검사를 구현했지만 1 을 읽으면 avconv와 ffmpeg 사이에 일부 불일치가 있음을 알 수 있습니다. 사전 설정 파일을 조정해야하고 특히 명령 줄을 만드는 방식을 변경해야하기 때문에이 문제가 더 큽니다. 입력 파일에서 작동하는 옵션은 입력 파일 "-i"보다 먼저 가야합니다.

Windows 버전에만 해당 될 수 있습니다. 이것은 Linux 버전과 관련하여 게시되었습니다.

FFmpeg 오디오 / 비디오 변환 도구는 이제 AVConv (제 생각에 더 나은 이름)로 알려져 있습니다. 따라서 "ffmpeg"명령 줄 도구는 더 이상 사용되지 않으며 "avconv"를 사용해야합니다. 모든 매개 변수가 동일하게 유지되는 것을 알았지 만 추가 조사가 필요합니다. CIS에서 일부 수정이 필요합니다.

작업 :

CIS를 실행하는 시스템에 AVConv를 설치하십시오. 일반적으로 avconv는 ffmpeg (우분투에서 작동했지만 데비안에서는 테스트되지 않은)를 업데이트하고 있어야합니다. 변환 도구 실행 파일을 나타내는 cis / api / ffmpeg.py, 클래스 FFmpegTranscoder, 필드 prog_bin에서 "ffmpeg"를 "avconv"로 바꾸십시오. AVConv를 포함하도록 "FFmpeg"또는 "ffmpeg"를 포함하는 리 팩터 파일 이름, 클래스 이름, 메소드 이름, 변수 이름 등 Eclipse와 같은 IDE가 자동으로이를 수행 할 수 있습니다. 테스트! 문제가 발견되면 디버그하십시오!


9
"ffmpeg는 더 이상 사용되지 않으며 avconv를 사용해야합니다"라는 게시물에 동의하지 않습니다.
slhck

@slhck 프로젝트를 포크 할 때 표준 연습 인 것 같습니다. 메인 브랜치가 더 이상 사용되지 않는다고 생각할 수있는 사용자가 많을수록 포크에 더 좋습니다.
user253751
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.