Lex의 오프닝은 단순하다. FFmpeg은 YouTube·Netflix·Chrome·VLC·Discord, 그리고 인터넷에서 오디오와 비디오를 다루는 거의 모든 플랫폼의 보이지 않는 등뼈(invisible backbone)다. 온라인 비디오 처리 워크플로의 90% 이상이 FFmpeg을 거치고, VLC는 누적 65억 회 이상 다운로드됐다. 그리고 이 모든 게 자원봉사자로 굴러간다.
Lex는 일부러 VLC의 상징인 오렌지색 트래픽 콘 모자를 쓰고 등장한다. JB(Jean-Baptiste)가 말하길, VLC 메인사이트 트래픽의 25%가 "cone player"로 검색해 들어온다. 사람들은 VLC를 모르지만 "콘 플레이어"는 안다. 한 번은 만우절에 로고를 바꾸겠다고 농담했더니 "바꾸지 말라"는 메일이 1만 통 왔다.
전설처럼 회자되는 "VLC는 뭐든 연다"는 농담을 검증하려고 VideoLAN 컨퍼런스에서 "가장 끔찍한 파일 만들기 대회"를 열었다. 매 프레임마다 해상도·비율·회전이 바뀌는 MKV, 동영상 전체가 애니메이션 자막인 SSA, 유효한 zip이자 동시에 유효한 MP3인 파일까지. 전부 재생됐다. "팬케이크를 DVD 드라이브에 넣으면 VLC가 재생한다"는 밈을 실제로 시도한 영상도 있다. 그건 안 됐다.
"재생" 버튼을 누른 순간 안에서 일어나는 일을 Kieran이 단계별로 풀어낸다. ① URL/파일에서 바이트 스트림 확보 → ② 디먹서(demuxer)가 컨테이너를 분해해 비디오·오디오·자막 트랙으로 나눔 → ③ GPU 디코드 가능 여부 판별 (실제로 파일의 약 45%는 GPU로 디코드 불가, 소프트웨어 폴백 필요) → ④ 엔트로피 디코딩(허프만/산술 부호화 해제) → ⑤ 인트라 예측 → ⑥ 잔차(residual)를 주파수→공간 도메인 역변환 → ⑦ 시간 예측(모션 보상) → ⑧ GPU 렌더링.
JB가 사람들이 잘 모르는 사실을 던진다. 오디오 압축률은 약 10배, 비디오는 100~200배. 단순 zip 같은 무손실이 아니라 인간의 눈·귀가 잘 못 알아채는 정보를 골라 버리는 "손실 압축"이다. 그래서 RGB가 아니라 YUV로 작업하고(밝기 채널 해상도는 유지, 색채는 절반으로 다운샘플 → 그것만으로도 데이터 절반), 푸리에/DCT로 주파수 도메인에 옮긴 다음, 코덱 세대마다 같은 화질에서 30%씩 더 압축한다. 단 그 30%마다 필요한 CPU 파워는 한 자릿수~두 자릿수 배수로 늘어난다.
컨테이너(MP4, MKV, MOV, AVI)는 "무엇이 들어있는지 알려주는 봉투"일 뿐, 안에 든 코덱은 별개다. VLC가 강한 이유는 확장자를 신뢰하지 않는다는 것. 파일을 직접 들여다보고 무엇인지 추정한다. 게다가 VLC의 DNA는 1990년대 UDP 멀티캐스트 스트리밍이라서, "입력 데이터가 깨져 있을 거란 전제"로 짜여 있다. AVI의 메타데이터가 파일 끝에 있어서 다운로드 중인 파일이 재생 안 되던 시대, VLC만 "어쨌든 한번 해보자"고 시도해서 인기를 끌었다.
After Effects급의 작업을 한 줄 명령으로 가능하게 만든 게 FFmpeg의 위대함이다. 인트로/아웃트로 붙이기, 크로스페이드, 자막 하드코딩, 폰트 커스터마이즈, 오디오 더킹, 레이어 합성, 모든 코덱 호환. JB가 정리한 미션: "극도로 복잡한 걸 일반인이 쉽게 쓰게 만든다." ImageMagick이 이미지에서 비슷한 위치지만, 비디오 영역에서 FFmpeg에 견줄 대안은 없다.
VLC의 시작은 1995년 프랑스 École Centrale Paris의 학생 프로젝트 "Network 2000"이다. 거대한 위성 안테나 하나로 받은 신호를 학내 네트워크로 1,500명 학생에게 뿌리자는 아이디어. 첫 데모는 45초 만에 크래시했지만 데모는 40초였다. JB는 2003년 학교에 입학하며 합류, 비영리 VideoLAN 재단을 세워 프로젝트를 학교 밖으로 빼냈다.
VLC가 살아남은 결정적 분기점은 "수상한 돈을 거절한 것"이다. 2000년대에 툴바·검색엔진 변경·스파이웨어 번들·광고 삽입 제안이 줄을 이었다. JB는 모두 거절했다. "나는 돈에 반대하지 않는다. 다섯 개 스타트업도 만들었다. 다만 돈을 윤리적으로 벌어야 한다." 마지막에 들어온 제안은 "그 돈으로 새 오픈소스 만들면 되잖아"라는 마인드트릭까지 동원했지만, 그래도 거절했다.
JB의 말이다. 커뮤니티는 코드만 본다. "당신이 이탈리아의 거대 기업 엔지니어든 시리아 내전 지대에서 반쪽짜리 전기로 코딩하든 상관없다. 코드 품질이 우리의 정의다." 그래서 거절도 매정하다. Linus Torvalds가 가혹하다는 평이 있지만, 그건 보통 메인테이너에게만이다. 그가 만든 게 인터넷 서버의 70~80%(MS Azure 포함)를 돌리고, 모든 안드로이드 폰을 돌린다. "품질에서 타협할 수 없다"는 게 핵심 가치.
FFmpeg 핵심 메인테이너는 10~15명, VLC는 6~8명이다. 누적 컨트리뷰터는 2,000~3,000명. JB가 잔인한 통계를 내놓는다. "기여자 1,000명 중 머무는 사람은 1%, 즉 10명뿐." 99%는 직장이 바뀌고, 결혼하고, 아이가 생기고, 사고를 당하고, 떠난다. 그래서 들어오는 코드는 "우리가 평생 유지보수할 수 있는가"를 기준으로 본다. 좋은 코드로는 부족하다 — 탁월해야 한다.
오픈소스 라이선스는 "커뮤니티의 사회계약"이다. MIT·BSD·Apache는 허용적(permissive), GPL·AGPL은 카피레프트(copyleft, 수정본도 같은 라이선스로 공개). LGPL은 그 사이의 "라이브러리 GPL" — 라이브러리 자체의 수정은 공개하되 라이브러리를 쓰는 앱은 비공개 가능. JB는 14년 전, libVLC를 GPL → LGPL로 바꾸기로 결심한다. 이유는 두 가지: ① 게임엔진·앱에 VLC 엔진을 라이브러리로 끼워 넣을 수 있게(BIZ), ② iOS App Store가 GPL을 사실상 막아두기 때문.
오픈소스는 "공동저작물(joint work)"이라 모든 기여자가 자기 기여분에 대한 저작권을 보유한다. 라이선스를 바꾸려면 모든 기여자의 동의가 필요하다. JB는 350명 이상을 추적해야 했다. 이메일만 있는 사람도, 직장으로 직접 찾아간 사람도 있다.
JB는 한 공장 노동자를 찾아갔다. 사인을 받아야 했던 그 코드는 이미 세상을 떠난 아들이 쓴 것이었다. 아버지에게 오픈소스가 뭔지, 그 코드가 어디에 쓰이는지 처음부터 설명해야 했다. "21살이었고, 거의 울 뻔했다. 누군가의 인생 이야기를 다루는 일이다." 그래서 일부 프로젝트가 "공격적으로 재라이선싱"하는 걸 보면 슬프다. 그게 커뮤니티의 심장을 무너뜨리는 일이다.
최근 X에서 큰 파장이 된 사건. Google이 AI 보안 스캐너를 FFmpeg에 돌려 자동으로 취약점 보고서를 양산하고, 표준 산업 데드라인인 90일 안에 고치라고 요구하며, 패치 전에 미디어에 자기 AI 성과를 먼저 발표했다. 문제가 된 취약점은 1990년대 어느 게임에서 단 한 장의 디스크에 쓰였던 모호한 코덱이었다.
Kieran의 비유: "우리 집 자물쇠는 포트녹스를 지키려고 단 게 아니다." 80년대 게임 코덱의 픽셀 하나가 잘못된 색으로 표시될 수 있다는 정수 오버플로 결함에 "심각도 7.5 — HIGH"라고 빨간 경고를 다는 건 늑대소년이다. 보고서들은 AI가 워낙 장황하게 써서 사실상 "DoS by bug report"다.
트릴리언 달러 기업들은 FFmpeg을 "공식 벤더"로 착각하고, 공개 버그트래커에 "High Priority" 딱지를 붙여 SLA처럼 요구한다. Microsoft Teams가 영구 유지보수 계약을 거절하고 "수천 달러 일회성 지원"을 제시한 게 단적인 예. Kieran은 "트럭 쳤다고 Microsoft 이름 명시한 버그 리포트는 특히 가증스러웠다"고. 결과: 시끄럽게 트윗을 날린 뒤 기부가 크게 늘었고, Google은 패치 보상금 제도를 도입했다. X는 작은 팀이 대기업에 압력을 행사할 수 있는 거의 유일한 채널이었다.
VLC for Android Play Store 버그도, Microsoft Store 배포 중단 위협도, 결국 "스파이시한 트윗"을 날려야 응답이 왔다. "이건 WWE 같은 거다. X에서 국제 랩 배틀 한 판 한 것. 인격적 원한은 없다."
이 팟캐스트의 진짜 보석. David(AV1 오픈소스 디코더)는 C 코드 3만 줄에 손으로 쓴 어셈블리 24만 줄. "어셈블리 79.9%, C 20.6%, 기타 0.5%"라는 Kieran의 트윗에 컴파일러 전문가들이 2년째 "현대 컴파일러 자동벡터화면 충분하다"고 반박해왔지만, 매번 수백 개의 사례로 짓밟혔다. "5~10% 차이가 아니다. 몇 배 차이다." 한 함수는 C 대비 62배 빠르다.
Kieran은 "무어의 법칙은 끝났다. 코어를 250개로 늘릴 수도 없다. 하드웨어가 더 빨라지지 않으니, 기계에서 마지막 한 톨까지 짜내는 게 가치"라고 못 박는다. David는 그 극단이다. 운영체제의 호출 규약(calling convention)조차 무시한다 — 자기 바이너리 안에서만 호출되니까, 레지스터 저장/복원을 건너뛰어 L1/L2 캐시 미스를 피한다. 암호화 명령을 비디오 처리에 동원하기도 한다. "칩 설계자가 의도하지 않은 방식으로 기계를 학대한다."
JB와 Kieran의 자랑: 한 16세 기여자 Ruikai Peng은 "보안 연구자"들이 호들갑 떨던 이슈를 조용히 3일 만에 패치하고 끝냈다. CVE도 신청하지 않았다. Andrej Karpathy는 Kieran의 트윗들을 보고 어셈블리를 배우기 시작했다. Kieran은 "어셈블리는 책의 grammar-first 방식으로는 안 가르쳐진다, 항공기 조종처럼 hands-on"이라며 직접 asm-lessons 레포를 만들었다. 필요한 건 고등학교 수학과 C 포인터 정도.
리버스 엔지니어링도 전설적이다. 우크라이나 출신 Kostya Shishkov는 GoToMeeting의 20~30MB 바이너리 블롭을 디스어셈블러로 까서 코덱을 통째로 복원했다. 디버거에서 인스트럭션 한 줄씩 따라가며 메모리에서 YUV가 어떻게 만들어지는지 추론하는 식이다. JB가 정리한다. "이 사람들은 1MB 블롭에 한 달을 쓰는 게 아니라, 30MB짜리를 그렇게 한다."
Lex가 묻자 둘 다 Rust에는 회의적이다. Kieran: "메모리 안전성이라는 유토피아만으로는 부족하다. 사람들이 옮겨오려면 지금 것보다 좋아야 한다. Rust의 coreutils 리라이트는 마지막 1%가 99%의 시간을 잡아먹는 클래식한 함정에 빠져 있다. Sinclair C5 전기차 분위기다."
JB의 새 스타트업 Kyber는 같은 비디오 엔지니어링 DNA를 "거리(distance)를 사라지게 하는 일"에 투입한다. 타깃: 휴머노이드 로봇 원격조종, 드론, 클라우드 게이밍, 원격 수술, 원격 잠수정.
핵심 KPI: glass-to-glass 4ms. 1,000Hz 카메라로 찍은 픽셀이 4밀리초 뒤 반대편 화면에 떠야 한다. 현재 Windows→Windows에서 7ms 달성. 그 중 Nvidia 하드웨어 인코더가 3.5ms, Intel 디코더가 2ms, 그래서 인코딩+디코딩만 6ms가 한계다.
로봇은 카메라 2~10대, GPS, 각종 센서가 동시에 흐른다. 각 클럭이 미세하게 드리프트하는데, 이걸 맞춰주지 않으면 AI 모델 학습용 데이터가 어긋난다. Kyber는 서버 측에 재타임스탬핑 메커니즘을 박아 둬서, 녹화된 스트림이 학습 단계에서도 일관성을 유지한다. 단일 QUIC 소켓에서 영상·음성·키보드·마우스·게임패드 명령을 동시 다중스트림으로 흘린다. Waymo도 1% 정도는 사실 사람이 원격조종한다는 사실을 JB가 짚는다. 텔레옵은 자율주행의 안전판이다.
코덱 세대 전쟁: H.264 → H.265(HEVC) → H.266(VVC), 한편으로 AV1 → AV2. 각 세대마다 30% 추가 압축. AV1/AV2는 Alliance for Open Media(Google, Netflix, Amazon, Apple, VideoLAN, Mozilla)가 만든 로열티프리 코덱. 반면 HEVC는 패턴풀이 분열돼서(MPEG-LA + HEVC Advance + Nokia) 라이선싱이 사실상 불가능해졌고, HP는 Windows 노트북에서 HEVC 지원을 빼버렸다. YouTube/Netflix 같은 회사는 연간 수억 달러의 라이선스 부담을 피하려 AV1을 만들었다. 곧 David2(AV2 디코더, "de"는 프랑스어로 2)가 나온다.
아카이브 커뮤니티(NYU의 Dave Rice가 주도)는 FFmpeg을 "멀티미디어의 로제타석"으로 본다. 영국의 New Doomsday Book이 BBC 마이크로컴퓨터에 보관됐다가 20년 만에 재생 불가가 된 사례를 떠올린다. 이들은 무손실 코덱 FFV1을 자금 지원해 만들었고, GPU 가속까지 후원했다. C는 라틴어처럼 살아남을 것이다 — 그래서 FFmpeg은 천 년 후에도 읽힐 가능성이 가장 높은 멀티미디어 도구다.
VLC가 도는 곳: Mars 2020 로버에서 이미지 압축에, CERN LHC 27km 링의 아날로그 카메라 모니터링에, F1 패독의 라이브피드에, SpaceX 발사 모니터링에, 그리고 아프간 전장의 미군 노트북에. JB는 "VLC는 미군 모럴에 중요하다"는 메일을 받고 RTSP 버그를 위해 별도 빌드를 보내줬다.
뉴럴링크 다음 세대: JB는 단호하다. "멀티미디어의 정의는 인간 감각을 위한 디지털 스트림이다. 뇌파가 되든 후각이 되든, 디먹서에 새 트랙 타입이 하나 추가될 뿐이다." 이미 VLC에는 4D 시네마용 햅틱 플러그인이 있다. 좌/우 오디오 트랙이 있듯 "스테레오 후각"도 가능하다는 농담이 진담이다.
국가/감시 압력에 대한 답: 정보기관이 백도어를 부탁한 적이 있다. JB의 답은 "Hell no. 우리 소프트웨어가 타협되면 우리는 그걸 꺼버린다." VLC는 컴파일 자체를 인터넷에 한 번도 연결되지 않은 오프라인 머신에서, 컴파일러를 컴파일하는 단계부터 시작한다. 이중 서명. VLC는 텔레메트리가 없고, 어떤 영상이 재생되는지 알 길이 없으므로 검열도 불가능하다. JB가 말하는 zen의 비결: "최악의 경우를 묻는다. 결국 내가 죽는가? 누군가를 해치는가? 둘 다 아니면 신경 쓸 일이 아니다."