브라우저에서 동영상과 오디오를 녹화·변환·스트리밍할 수 있는 순수 WebAssembly 및 JavaScript 기반 FFmpeg 포트입니다.
Vanilagy/mediabunny
브라우저에서 MP4, WebM, MP3 등의 동영상·오디오 파일을 읽고, 쓰고, 변환하는 의존성 없는 TypeScript 라이브러리입니다.
- 스타
- 7,441
- 포크
- 339
- 열린 이슈
- 53
- 마지막 커밋
- 어제
어떤 프로젝트인가요?
Mediabunny는 MP4, WebM, MP3, HLS 같은 미디어 파일을 브라우저에서 직접 읽고, 쓰고, 변환하는 JavaScript 라이브러리입니다. 의존성 없이 TypeScript로 처음부터 작성했으며, 명령줄 미디어 작업에 FFmpeg를 사용하는 방식의 웹 네이티브 대안으로 설계되었습니다.
MOV, MKV, WAV, Ogg, FLAC, MPEG-TS 등의 포맷에서 컨테이너 디먹싱과 먹싱을 지원하고, 25개 이상의 동영상·오디오·자막 코덱을 처리합니다. 인코딩과 디코딩에는 WebCodecs API를 사용하며, 가능한 경우 하드웨어 가속을 활용합니다. 변환 API로 transmuxing, transcoding, 크기 조정, 회전, 자르기, 리샘플링, 트리밍을 할 수 있습니다.
파일을 스트리밍 방식으로 처리하므로 대용량 파일도 전체를 메모리에 올리지 않고 작업할 수 있습니다. 패키지는 tree-shakable하며, 가장 작은 번들은 gzip 압축 기준 약 5 kB입니다. 별도 패키지인 @mediabunny/server를 사용하면 동일한 코드를 Node, Bun, Deno에서도 실행할 수 있습니다.
핵심 기능
- 01MP4, MOV, WebM, MKV, HLS, WAV, MP3, Ogg, ADTS, FLAC, MPEG-TS를 읽고 쓸 수 있습니다.
- 02WebCodecs를 통한 하드웨어 가속으로 25개 이상의 동영상·오디오·자막 코덱을 지원합니다.
- 03transmuxing, transcoding, 크기 조정, 자르기, 회전, 트리밍을 위한 변환 API를 제공합니다.
- 04입력과 출력을 스트리밍 방식으로 처리해 크기에 관계없이 파일을 다룰 수 있습니다.
- 05런타임 의존성이 없고 tree-shakable하며, gzip 압축 기준 약 5 kB까지 번들 크기를 줄일 수 있습니다.
- 06브라우저에서 실행할 수 있으며, @mediabunny/server를 사용하면 Node, Bun, Deno에서도 실행됩니다.
활용 사례
- 사용자가 업로드한 동영상을 서버로 보내기 전에 WebM이나 MP4로 변환하기
- 웹 앱에서 미디어 파일의 재생 시간, 크기, 회전 정보, 메타데이터 태그 읽기
- 브라우저에서 canvas 프레임으로 MP4 동영상 생성하기
- 브라우저 기반 동영상 편집기에서 클립을 트리밍하거나 크기 조정하기
빠른 시작
- 1
npm에서 패키지를 설치합니다
npm install mediabunny - 2
Input, ALL_FORMATS, BlobSource를 가져와 파일에서 메타데이터를 읽습니다
사용 전 알아둘 점
- 브라우저를 대상으로 하며, 하드웨어 가속 코덱에 WebCodecs API를 사용합니다.
- 타입을 사용하려면 TypeScript 5.7 이상이 필요합니다.
토픽
자주 묻는 질문
- mediabunny은(는) 무엇인가요?
- 브라우저에서 MP4, WebM, MP3 등의 동영상·오디오 파일을 읽고, 쓰고, 변환하는 의존성 없는 TypeScript 라이브러리입니다. Mediabunny는 MP4, WebM, MP3, HLS 같은 미디어 파일을 브라우저에서 직접 읽고, 쓰고, 변환하는 JavaScript 라이브러리입니다. 의존성 없이 TypeScript로 처음부터 작성했으며, 명령줄 미디어 작업에 FFmpeg를 사용하는 방식의 웹 네이티브 대안으로 설계되었습니다.
- mediabunny은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- mediabunny은(는) MPL-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- mediabunny은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. mediabunny의 마지막 커밋은 2026년 11월 6일입니다.
- mediabunny은(는) 어디에 사용할 수 있나요?
- 사용자가 업로드한 동영상을 서버로 보내기 전에 WebM이나 MP4로 변환하기 웹 앱에서 미디어 파일의 재생 시간, 크기, 회전 정보, 메타데이터 태그 읽기 브라우저에서 canvas 프레임으로 MP4 동영상 생성하기 브라우저 기반 동영상 편집기에서 클립을 트리밍하거나 크기 조정하기
- mediabunny는 어떻게 설치하나요?
- npm에서 패키지를 설치합니다: npm install mediabunny Input, ALL_FORMATS, BlobSource를 가져와 파일에서 메타데이터를 읽습니다
- mediabunny은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/Vanilagy/mediabunny
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
오디오·비디오·자막을 디코딩, 인코딩, 변환, 필터링, 스트리밍할 수 있는 C 라이브러리 모음이자 CLI 도구입니다.
조건에 따른 플러그인 규칙을 사용해 FFmpeg 또는 HandBrake로 동영상과 오디오 파일을 트랜스코딩하고 리먹싱하는 분산형 미디어 라이브러리 자동화 도구입니다.
외부 의존성 없이 단일 소스 파일로 배포되는 C 오디오 재생 및 캡처 라이브러리입니다.
브라우저에서 완전히 실행되는 멀티트랙 동영상 편집기로, 로컬 미디어 저장과 WebGPU 효과, 브라우저 내보내기를 지원합니다.
완성된 모션 그래픽 광고를 흑백 초안 장면과 동기화해 재생하고, 분석 결과를 MP4 하나로 내보내는 로컬 브라우저 도구입니다.