최근 수정 시각 : 2024-10-09 05:05:28

FFmpeg

ffmpeg에서 넘어옴
<colbgcolor=#f5f5f5,#2d2f34> FFmpeg
Fast Forward MPEG
파일:FFmpeg 로고.svg
발표 2000년 12월 20일
라이선스 LGPL, GPL[1]
최신 버전 7.1
유지보수 버전7.0.2
링크 파일:홈페이지 아이콘.svg | 파일:홈페이지 아이콘.svg Windows
1. 개요2. FFmpeg에서 제공하는 것들3. 디코더
3.1. FFmpeg을 기반으로 하는 동영상 플레이어3.2. FFmpeg을 기반으로 하는 코덱
4. 동영상 인코더
4.1. 특징4.2. FFmpeg을 기반으로 하는 인코더4.3. FFmpeg를 기반으로 하는 서비스4.4. 일반적인 옵션4.5. 예시4.6. 프라운호퍼 AAC인코더 libfdk_aac 라이브러리 빌드
5. 그 외 FFmpeg을 이용하는 프로그램들6. 국산 플레이어의 GPL 위반 의혹7. FFmpeg? libav?

1. 개요

마이클 니더마이어(Michael Niedermayer)의 주도하에 개발되고 있는 모든 동영상, 음악, 사진 포맷들의 디코딩과 인코딩을 목표로 만들어지고 있는 오픈 소스 프로젝트. 참고로 FFmpeg의 로열티 문제는 FFmpeg가 아닌 FFmpeg가 포함하고 있는 H.265와 같은 유료 코덱들에 의한 것이다. 이미 이런 문제 때문에 삼성을 비롯한 전세계의 IT 관련 대기업들이 협력해 AV1 프로젝트를 진행중이다.[2]

관련 프로그램(인코더와 디코더 등등)에서 표준이라 불리울 정도로 많은 프로그램들의 기반으로 이용되고 있다. 아래의 FFmpeg을 기반[3]으로 하는 프로그램 리스트를 보면 알겠지만 거의 대부분의 비디오 관련 프로그램들이 사용하고 있다.

한 일화로 NVIDIAAMD는 자사의 그래픽카드의 하드웨어 가속을 위해 FFmpeg에 '직접' 소스를 건내주고 FFmpeg가 시키는대로 수정하였다. 대부분의 멀티미디어 재생기가 FFmpeg을 기반으로 하기 때문에, FFmpeg에서 지원만 한다면 그 효과를 당장 볼 수 있기 때문.

2. FFmpeg에서 제공하는 것들

  • ffmpeg - 미디어 포맷 변환 도구
  • ffplay - 간이 파일 재생기
  • ffprobe - 미디어 정보 표시 도구
  • ffserver - 라이브 방송을 하는 멀티미디어 스트리밍 서버. 버전 3.4이후 제거되었다.
  • libavcodec - 오디오/비디오 코덱 라이브러리
  • libavformat - 멀티미디어 컨테이너의 디먹서/먹서 라이브러리
  • libavdevice - 입출력 장치 제어 라이브러리
  • libavfilter - 미디어 필터 라이브러리
  • libswscale - 이미지 처리 라이브러리
  • libswresample - 오디오 처리 라이브러리

3. 디코더

쉽게 이야기하면 동영상을 재생할때 쓰이는 코덱이다. FFmpeg의 영향력이 절대적이다. macOS, 안드로이드, iOS, Microsoft Windows에서 유명한 코덱 내장형 동영상 플레이어들은 모두 FFmpeg의 libavcodec을 기반으로 하고 있다고 봐도 무방하다.

3.1. FFmpeg을 기반으로 하는 동영상 플레이어


여기에 적혀있는 것들은 유명한 것들이고, 이것들 말고도 수많은 미디어 플레이어들이 FFmpeg를 기반으로 한다.

3.2. FFmpeg을 기반으로 하는 코덱

  • LAVFilters
  • FFDshow[5]
  • 그리고 LAVFilters와 FFDshow를 기반으로하는 수많은 통합코덱들

4. 동영상 인코더

이쪽은 한마디로 정리가 가능하다. 곰인코더, 바닥, 다음 팟인코더 등 대다수 인코더 프로그램들은 FFmpeg 기반이다.

4.1. 특징

  • FFmpeg 프로젝트 자체가 모든 영상의 디코딩/인코딩을 지향하기 때문에 추가적인 코덱의 설치가 필요 없다.[6] ffmpeg.exe 파일 하나로도 인코딩이 가능하다.
  • 멀티 코어를 공식적으로 지원한다. 따로 옵션을 적지 않으면 모든 코어를 사용한다.
  • VF(libavfilter) 기능 내장.
  • FFmpeg은 쉬운 인코딩을 위해 각종 프리셋을 포함하고 있다. 사실 아래의 인코더들을 쓰는 것보다 직접 FFmpeg을 이용해서 프리셋을 활용하는 것이 더 나은 화질을 보장한다. CLI 기반이라 어질어질할 수도 있지만, 찾아보면 위의 블로그처럼 스크립트를 공개한 곳이 많다. 정 귀찮으면 위 블로그에 있는 배치파일을 그냥 쓰면 된다. 리플들을 보면 수정된 프리셋이 많다. 그래도 아래의 인코더들보다 화질이 훨씬 좋게 나온다.[7] 정 귀찮으면 아래 나오는 인코더를 써도 된다.

4.2. FFmpeg을 기반으로 하는 인코더

  • 제트오디오VX(무료 혹은 유료, 코원)
  • 유마일
  • 엔젤인코더
  • 샤나인코더
  • Freemake - 서양에서 유명한 인코딩 프로그램. 그러나 랜섬웨어 유포 위험이 있다.
  • Mencoder
  • 곰인코더
  • 다음팟인코더
  • 핸드 브레이크 - 세계에서 가장 많이 쓰이는 인코더. MPEG-4와 MPEG-2를 인코딩할때 FFmpeg를 사용한다. H.264, HEVCTheora도 지원한다.
  • WInff - FFmpeg를 GUI로 만든 프로그램이다

물론 이 목록 말고도, 대다수의 쉬운 인코더를 자처하는 프로그램들은 대부분 FFmpeg기반이다.

4.3. FFmpeg를 기반으로 하는 서비스

  • 니코니코 동화, 아프리카TV 등의 인터넷 동영상 사이트
    • 많은 인터넷 동영상 사이트들도 FFmpeg를 사용하고 있다. 영상 파일을 다운받아서 뜯어보면 알겠지만, Lavf(libavformat)를 사용하고 있으며 영상 인코딩에도 libavcodec를 사용하고 있다.

4.4. 일반적인 옵션

  • -i [input]
    • 입력 파일을 지정한다.
  • -vcodec [codec], -acodec [codec] 또는 -c:v [codec], -c:a [codec]
    • 비디오 코덱, 오디오 코덱을 지정한다. 사용할 수 있는 코덱은 ffmpeg -encoders로 확인할 수 있다. copy로 지정하면 기존 스트림을 인코딩 하지 않고(direct stream) 복사한다.
  • -vf [filter], -af [filter]
    • 비디오, 오디오에 필터를 적용한다. 크롭, 리사이즈, 속도 변경 혹은 ASS, SRT 자막을 입히는 등의 처리를 할 수 있다. 자세한 것은 FFmpeg의 필터 문서를 참고하자. 참고로 자막을 입히는 건 폰트 때문에 윈도에서는 환경변수를 지정해 줘야 한다.
  • -b:v [bitrate], -b:a [bitrate]
    • 비디오, 오디오의 비트레이트를 지정한다.
  • -crf [quality]
    • 비트레이트 대신 화질 기준으로 인코딩할 때 쓰는 옵션. libx264 코덱 기준 사용 가능 범위 0-51, 0은 무손실, 디폴트는 23
  • -y
    • 파일 명이 중복될 경우 묻지 않고 덮어쓴다.
  • -re
    • 인코딩 속도를 Realtime, 즉 1x(실시간)으로 제한한다. 로컬 파일을 ffserver로 스트리밍 시 실시간으로 feed를 전송하기 위해서 필요하다.
  • -f [container]
    • 입출력 포맷을 지정한다. 따로 적지 않아도 파일 확장자에 맞춰서 해준다.
  • -t [time]
    • 지정된 시간(초 단위) 만큼 인코딩한다.
  • -ss [time]
    • 지정된 시간(초 단위) 만큼 건너뛰고 인코딩한다. hh:mm:ss 방식으로도 표기가 가능하다.
  • -to [time]
    • 지정된 시간(초 단위)까지만 잘라내고 인코딩한다. 위의 -ss처럼 hh:mm:ss 방식으로 입력할 수도 있다.

4.5. 예시

일반 영상을 스마트폰 등에 맞추어 재인코딩 할때나 블루레이 원본 영상을 인코딩할 때 [8]의 설정 예시는 다음과 같다.
#!syntax powershell
ffmpeg -i filename.mp4 -sn -c:v libx264 -preset medium -crf 23 -tune animation -sws_flags lanczos -filter:v "scale=-1:720" -c:a aac -b:a 192k -ac 2 outfile.mkv
  • "-i filename.mp4" - 입력 파일로 filename.mp4를 지정한다. 확장자를 포함시켜야 한다.
  • "-threads 0" - 사용할 스레드 수를 지정한다. 0은 모두. 0이 디폴트라 생략해도 무방하다.
  • "-sn" - 내장 자막을 인코딩하지 않겠다는 의미이다. 내장 자막을 가져오고 싶으면 -c:s copy로 바꾸면 된다.
  • "-vcodec libx264" - libx264를 사용하여 H.264로 인코딩. MPEG4를 쓰려면 libxvid, VP8을 쓰려면 libvpx로 설정해주면 된다. 밑은 옵션 중 libx264의 옵션을 사용하는 건 물론 달라지지만 대충 비슷하다. 다양한 옵션은 영어가 된다면 FFmpeg 위키 참조.
  • "-preset medium" - libx264의 프리셋을 이용하는 것으로 placebo, veryslow, slower, slow, medium, fast, faster, veryfast, superfast, ultrafast 옵션이 있다. ultrafast나 placebo (이렇게 느려지면 화질 개선이 플라시보 효과 이상의 무언가는 없다라는 수준) 등의 옵션도 있지만 보통 사람들은 쓸 일 없다(...) 당연히 slow 쪽으로 갈수록 인코딩은 느려진다. CRF(퀄리티)나 CQ(퀀타이저) 방식으로 인코딩을 할 때는 용량에 관여를 하며, 비트레이트 지정으로 인코딩을 할 때는 화질에 관여한다. CRF 인코딩 기준 slow의 경우 medium에 비해 인코딩 시간이 50~66% 늘어나지만 용량은 0~4% 정도 줄어든다. veryslow의 경우는 약 4.5배 정도 인코딩 시간이 늘어나며 용량 이득은 12% 정도다.[9]
  • "-crf 23" - CRF는 고정 비트레이트 인코딩이 아닌 "가변 비트레이트 화질 우선 인코딩"방식으로서 옵션값은 0에서 51까지의 설정이 가능한데 값이 낮을수록 고화질이다. 18 정도면 거의 무손실이고 기본값인 23 정도면 상당히 고화질으로서 영화나 미드를 인코딩하는 데 적절하다. 애니메이션은 보통 25~27의 값을 쓴다. 화질이 나쁜(깍두기 크리를 맞은) MPEG2 방식의 HDTV 원본을 재인코딩할 때는 CRF 방식으로 인코딩하면 원본보다 더 크게 인코딩되는 경우가 있으므로 고정 비트레이트 방식으로 인코딩을 하는 게 낫다.[10] 고정 비트레이트 방식으로 인코딩을 하고 싶다면 -crf 23 대신에 -vb 2000k 이렇게 지정하면 된다.
  • "-tune animation" - libx264의 tune 옵션을 사용한다. 색감과는 관계가 없고 deblock 위주로 옵션을 조정한다. animation 옵션은 deblock 값을 높여서 화면을 좀 더 뭉게준다. 일반적인 영화나 티비 영상의 경우 film 옵션을 쓴다.
  • "-sws_flags lanczos -vf "scale=1280:-1"" lanczos란 리사이즈 필터를 이용하여 720p로 리사이즈. -1은 화면비에 맞춰서 자동으로 세로사이즈를 결정한다. 자동으로 리사이즈하는 경우에는 1280:718 이런 식으로 이상한 사이즈가 나올 수 있으니 웬만하면 수동으로 지정해주자. 이 VF 명령줄에 여러 가지 필터를 넣을 수 있다. libass를 사용해서 자막을 하드코딩할 수도 있고 yadif로 디인터레이싱도 가능하다. ivtc도 가능하다. FFmpeg 필터 문서 참조.
  • "-c:a aac -b:a 192k -ac 2" AAC 코덱으로 192kbps 정도에 맞춰서 2채널로 다운믹싱하여 인코딩한다. AAC 외에 MP3 같은 포맷도 사용할 수 있으나, OpusVorbis를 제외하면 음질이 상대적으로 떨어지기 때문에 비추천한다.[11] 이보다도 고품질로 인코딩하고자 한다면 Opus 혹은 Vorbis를 쓰거나, 프라운호퍼 AAC 소스를 가져와서 직접 FFmpeg을 컴파일해서 인코딩을 해야 한다.[12][13] Vorbis를 이용하여 -acodec libvorbis -ac 2 -aq 4(128kbps) 이런 식으로 인코딩할 수 있다. 단, Vorbis의 경우 일반적인 기기에서 호환성은 떨어진다.[14] 더 다양한 옵션은 FFmpeg 공식 오디오 인코딩 가이드 참조.
  • "outfile.mkv" - 출력 파일명이다. 확장자에 따라 영상 컨테이너(avi, mp4, mkv 같은)를 자동으로 선택해주긴 하지만, 가급적이면 -format 옵션으로 출력 포맷을 지정해 주도록 하자. 참고로 확장자가 mp4인 경우에는 음성코덱으로 AAC, MP2, MP3, AC3, Opus[15]만 가능하고 Vorbis는 불가능하다. MKV가 가장 호환성이 좋다. 현존하는 거의 모든 포맷을 담을 수 있을 정도.

2015년 12월 부로 FFmpeg의 내장 AAC 인코더가 대폭 개선되었다고 발표했다. 링크1 링크2 제작자는 libfdk_aac와 비슷하거나 좀 더 우수한 성능을 나타낸다고 했지만 써본 사용자에 의하면 VBR 모드로는 여전히 부족하다고 하지만 CBR 모드로는 썩 괜찮다 카더라 링크. 참고로 FFmpeg 측의 주장대로 내장 aac가 (스테레오 채널) 128kbps 정도에서 음질이 상당한 것은 사실이지만 libfdk_aac에 비해 인코딩 속도는 다소 느린 편이다. (대신 빌드를 따로 할 필요가 없어 Zeranoe FFmpeg Build 같이 라이선스 문제로 libfdk_aac는 포함되지 않았지만 필요한 것들은 대부분 포함해서 바이너리로 공개하는 것들을 걍 쓰던 사람들의 편리성은 극대화 된 듯)

4.6. 프라운호퍼 AAC인코더 libfdk_aac 라이브러리 빌드

내장 AAC 인코더가 좋지 않기 때문에 FFmpeg에서 보다 고품질의 AAC 오디오를 사용하려면 프라운호퍼 코덱을 쓰는 게 최선의 방법이지만 라이선스 문제로 배포되지는 못하고 직접 컴파일해서 써야 된다. github에 올라와 있는 빌더툴을 이용하자.

윈도우용깃헙링크
리눅스용깃헙링크[16]

(윈도우용 기준)영문 스크립트이므로 굳이 언어에 제약받지 않아도 된다. 인터넷만 연결되어 있으면 이론상 MSYS2가 지원되는 어떤 윈도우즈 상에서도 사용 가능. 시간만 있으면 공간 넉넉한 외장하드(대략 14기가 정도 먹는다)에 폴더 하나 마련해서 실행시키고 결과물만 시스템에 옮겨버려도 된다. 프라운호퍼 라이브러리 뿐만 아니라 AV1, nvenc 등 가능한 라이브러리는 다 찾아서 컴파일한다. 기본 세팅은 모든 라이브러리를 정적으로 ffmpeg.exe 에 박아넣게 되어 있으니 컴파일된 결과도 간편하게 가지고 다닐 수 있다. 다만 github 소스니 가끔 빌드가 실패하는 경우가 있다.

샤나인코더에는 fdk aac가 기본적으로 컴파일되어 있다.

주의사항으로 프라운호퍼 AAC 인코더는 LC의 경우 따로 대역폭 옵션을 지정하지 않으면 고정 비트레이트 옵션에선 아무리 비트레이트를 올려도 17,000Hz 이상의 주파수는 칼같이 날려버린다. 가변 비트레이트 옵션도 역시 대역폭 지정이 없을경우 최고등급인 5는 제한이 없지만 바로 아래 등급인 4에서도 15.5kHz의 제한이 걸린다. 낮은 비트레이트 인코딩에선 이해가 가는 부분이지만 높은 비트레이트에서도 이러는건 아무리 봐도 정신줄을 놓은것처럼 보인다. 이 연구소에는 고주파는 못듣는 노인네들만 있는 모양이다. 이러니까 MP3인코더에서 Lame한테 관광을 당하지 비트레이트를 높여서 인코딩 할때는 이 부분의 지정이 반드시 필요하다. -cutoff 18000 옵션에서 컷오프 주파수를 지정해주자. 최대값은 20000.[17] 단, 낮은 비트레이트에서 컷오프 주파수를 무리하게 높게 잡으면 잘 들리지도 않는 고주파 부분이 데이터를 다 잡아먹어서 정작 중요한 저주파영역 음질이 골룸해질 수 있으니 잘 판단하자. 자세한 인코딩 옵션은 https://trac.ffmpeg.org/wiki/Encode/AAC에서 확인하자.

5. 그 외 FFmpeg을 이용하는 프로그램들

  • Kodi(전 XBMC)
  • media human 이라는 회사에서 만드는 비디오 컨버터 혹은 오디오 컨버터 등에서 쓰인다. 자체 빌드해서 사용하는듯

6. 국산 플레이어의 GPL 위반 의혹

KMPlayer, 곰플레이어, 팟플레이어 3개 플레이어의 경우 GPL 위반 의혹이 있다. FFmpeg의 GPL 부분을 포함해서 사용하기 때문인데, 이 부분이 많이 쓰이는 코덱과 없어선 안 되는 기능이기 때문에 제외하고 LGPL 부분만 사용하기는 힘들다. 이 때문에 3개 플레이어 전부 FFmpeg을 별다른 생각 없이 내장했다가 GPL 위반 의혹을 사게 되었다.

이 문제가 제기된 이후 대부분의 플레이어가 별다른 대응이 없는 와중에 팟플레이어가 소스를 공개하였다. LGPL 라이선스와 함께 수정된 FFmpeg 소스코드를 다운받을 수 있는 주소를 제공하고(소스코드 다운 링크), 글로벌 버전을 출시하며 기본 설치 패키지에서 FFmpeg를 빼 버렸다. 다만, 설치 완료 화면에서 'Open Codec for PotPlayer'를 체크하면 서버로부터 추가 파일 다운로드 후에 설치가 진행된다. 혹시 이 과정을 건너 뛰었다면 서버에서 파일을 직접 다운받을 수도 있다. (32비트용, 64비트용)

iOS의 AVPlayer의 경우 소스코드 전체를 공개하고 있다. #다운로드 페이지 iOS와 앱스토어 심사의 특성상 LGPL에서 허용하는 라이브러리 다이나믹 링크로 처리할 방법이 없기 때문에 아예 소스코드 전체를 공개한 듯하다.[18] 이 때문에 앱스토어에서 "무인코딩"으로 검색하면 AVPlayer 이외에도 다른 국산 플레이어가 여러 개 튀어나온다. 물론 소스코드 공개 이런 거 없다.

상기 프로그램은 그나마 유명세를 타고 개발자들 사이에서 논란이 한 번 됐기에 회자되고 있을 뿐, Google Play의 한국산 앱들 중에서도 FFmpeg를 사용하면서 라이선스를 위반한 것으로 보이는 앱이 수두룩 빽빽하다.[19] 애플 앱스토어는 라이선스 위반으로 앱을 신고하면 앱이 내려가는 사례도 왕왕 있으나, 라이선스 정책뿐만 아니라 온갖 부분에서 정책이 허술한 구글 플레이 쪽은 사실상 그냥 무법지대로 방치되고 있는 중.

상용이든 무료든 내장 코덱을 이용하는 프로그램치고 오픈소스가 아닌 이상 GPL 위반에서 벗어나는 것은 현실적으로는 불가능하다. GPL 라이선스는 프로그램 코드 전부를 원하기 때문이다. Hall of Shame에 등재되어 있지 않는 프로그램은 GPL 위반이 아니라서가 아니라 대중에게 비교적 덜 알려진 경우에 불과하다. FFmpeg에 포함된 코덱들도 라이선스 이슈에서 완전히 자유로운 것은 아니다. GPL 라이선스는 상업적 목적이 주가 되는 개발자들한테서 점차 기피되고 있다. 물론 그렇다고 GPL을 부정적으로 볼 일은 아니다. GPL이 싫으면 자신이 직접 같은 기능을 하는 코드를 짜면 된다. 남이 만든 걸 금전적인 대가 없이 가져다 쓰면서 아무 책임도 안 지려는 게 이기적인 것이다. 애초에 GPL에 소스 공개 강제조항이 들어간 것도 오픈소스를 이용하면서 자기 코드는 내놓지 않는 먹튀를 방지하기 위해서다. 보통 이런식으로 GPL로 공개된 소스 코드들은 별도의 계약을 통해 클로즈드 라이선싱이 가능한 경우가 많다. (x264 같은)

7. FFmpeg? libav?

우분투등의 몇몇 리눅스 배포판에는 FFmpeg를 설치하면 FFmpeg대신 avconv가 설치되는데[20], 이는 FFmpeg의 포크이다. FFmpeg 안에서 파벌이 갈리고 싸움이 일어났는데, 그 결과 의견이 다른 사람들은 따로 나와서 libav라는 새로운 포크를 만들었다. libav 쪽은 FFmpeg 쪽을 완전히 무시하고 있는 상황이지만, FFmpeg 는 자신들이 개발하는것에 더해서, libav 쪽을 계속 모니터링하면서(아무래도 오픈소스니...) libav에서 만든것들도 좍 긁어다가 FFmpeg에 그대로 편입시키고 있는 상황. 덕분에 왠지 FFmpeg가 드러운 것 같긴 하지만[21], 사용자 입장에서는 FFmpeg 쪽이 기능면에서 낫다. 2015년 8월 1일, FFmpeg의 리더 개발자가 libav를 직접적으로 명시하진 않았지만 불화로 인해 FFmpeg에서 갈라져나온 포크 프로젝트들에게 화해를 공식적으로 제안했다.


[1] 포함해서 빌드할지 여부를 선택할 수 있는 일부 기능과 최적화 코드가 GPL을 따르고 나머지는 LGPL을 따른다.[2] 2022년 9월에 libaom-av1 muxer로 정식 릴리즈 버전에 추가됐다![3] 정확히는 FFmpeg의 일부인 libavcodec 라이브러리를 주로 쓴다.[4] FFmpeg 개발자중에는 MPlayer 개발에도 참여하는 사람이 많다.[5] 애시당초 FFmpeg에서 파생된 프로젝트이다.[6] 단 FFmpeg 컴파일 시 어떤 코덱의 라이브러리를 링크하느냐 마느냐에 따라 해당 코덱의 영상 처리가 불가능한 경우도 있다.[7] 이것은 인코더들이 아주 오래된 버전의 FFmpeg을 기반으로 하고 있으며, FFmpeg에서 제공하는 프리셋을 사용하지 않기 때문이다.[8] 팟인코더 등 인코딩 프로그램 대체[9] http://dicer.tistory.com/219 참조.[10] MPEG2를 H.264로 재인코딩한다면 비트레이트는 MPEG2 원본의 절반 정도가 적절하다.[11] FFmpeg 오디오 코덱 서열: libopus > libvorbis >= libfdk_aac > aac(FFmpeg 자체 aac 인코더) > libmp3lame >= eac3/ac3 > libtwolame(최신 mp2 인코더) > vorbis(초기 vorbis 인코더) > mp2(초기 mp2 인코더) > wmav2/wmav1(초기 wma 인코더)[12] 이 소스는 안드로이드가 출처인데 라이선스 때문에 대놓고 FFmpeg에 포함시키지는 못하고 이런 식으로 사용할 수 있는 것. 또한 DLL도 제공하는 건지 일부 FFmpeg 계열 인코더에 이걸 DLL로 포함한 경우가 있다.[13] 아예 macOS 쓰는 방법도 있다. 그쪽은 Apple AAC 인코더를 기본적으로 사용 가능하다보니 FFmpeg 맥 버전 역시 이걸 사용 가능하도록 만들어져 있다. 다만 FFmpeg는 라이센스 문제를 신경쓰는 편이라 윈도우용에서는 기능을 비활성화시켜놨다.[14] 상업용 장비에서 이런 일이 좀 있다. 실제로 올레 스카이라이프 TV의 USB 파일 재생에서 Vorbis 지원을 안 한다. 심지어 이런 장비의 경우 smi 자막을 지원 안해서 srt로 변환해야 하는 경우가 상당히 많다.[15] 2010년대 후반부터 지원[16] 데비안/우분투에서는 잘 작동하는데 다른 배포판에서는 살짝 마사지를 해 줘야 한다.[17] Lame MP3 encoder의 경우 최신버전에선 320kbps에서 주파수 컷오프가 거의 없다. 20,000Hz 까지 포함된다.[18] 사실 이것도 KLDP에서 한차례 논란이 된 끝에 이렇게 된 것.[19] mms 및 그 파생 포맷을 스트리밍(인터넷 방송이나 라디오 따위) 해주는 앱은 십중팔구 FFmpeg를 가져다 썼다고 보면 된다. 그리고 그중에서 가이드라인을 따르거나 소스코드를 공개한 앱의 숫자는...[20] 단, 우분투의 upstream인 데비안 리눅스는 보안 대응/커밋수의 차이등을 근거로 FFmpeg로 다시 회귀하였기 때문에 데비안을 기반으로 하는 우분투 등의 리눅스 배포판들도 이 흐름에 따라갈 것으로 보인다.[21] 하지만 원래 자유 소프트웨어 겸 오픈소스는 그런 것을 권장하기 위해 나온 것이다.