Base64 동영상을 재생하는 방법
- Base64 또는 data URI에 Base64를 붙여넣거나 .txt 파일 열기로 텍스트 파일에서 불러오세요. 페이지를 열면 2초짜리 H.264 예시가 불러와집니다.
- 플레이어에 첫 프레임이 표시됩니다. 브라우저가 파일의 메타데이터를 읽고 나면 재생 시간과 크기(가로×세로) 항목이 나타납니다. 예시 파일이라면
0:02.0,96 × 64 px입니다. - 확장자와 MIME 유형은 감지된 컨테이너를 따릅니다.
.mp4와video/mp4,.webm과video/webm,.mov와video/quicktime입니다. - 파일 다운로드를 눌러 동영상을 저장하세요.
재생에는 브라우저 자체의 디코더가 쓰이고 페이지의 콘텐츠 보안 정책(CSP)이 Cloudflare 조회수 집계 외의 네트워크 요청을 차단하므로, 비공개 녹화 영상은 기기에 그대로 남습니다.
컨테이너와 코덱
동영상 파일은 두 층으로 이루어집니다. 하나는 도구가 첫 바이트에서 감지하는 컨테이너(MP4, WebM, MOV, MKV)이고, 다른 하나는 그 안에 든 영상과 소리의 코덱으로, 이것은 브라우저의 미디어 엔진만 읽습니다. 재생 여부는 코덱에 달려 있습니다.
| 비디오 코덱 | 일반적인 컨테이너 | Chrome, Edge | Firefox | Safari |
|---|---|---|---|---|
| H.264 (AVC) | MP4, MOV | 예 | 예 | 예 |
| VP8, VP9 | WebM | 예 | 예 | WebM은 macOS Safari 16, iOS 17.4부터 |
| AV1 | MP4, WebM | 예 | 예 | 하드웨어 AV1 디코딩을 지원하는 기기에서만 |
| HEVC (H.265) | MP4, MOV | 시스템이 디코더를 제공하는 경우 | 제한적, 플랫폼에 따라 다름 | 예 |
| Theora | Ogg | 아니요 | 아니요 | 아니요 |
인코딩을 직접 정할 수 있다면 MP4에 담은 H.264가 안전한 선택입니다. 브라우저가 파일을 디코딩하지 못하면 재생 시간과 크기(가로×세로) 항목에 해당 없음이 표시되고, 플레이어 위에 “이 브라우저는 이 MP4 파일을 재생할 수 없습니다. 다운로드해 미디어 플레이어에서 여세요.“라는 안내가 나타납니다. 다운로드한 파일 자체는 온전하며, 표에 있는 코덱은 모두 VLC나 ffmpeg로 읽을 수 있습니다.
감지 결과가 알려 주는 것
| 감지된 형식 | 이 페이지의 안내 |
|---|---|
| MP4, MOV, 3GP, WebM, MKV, AVI, OGV | 동영상으로 인정되며 알맞은 확장자가 붙음 |
| 영상이 없는 WebM 또는 MP4 | 재생되며 크기(가로×세로) 항목에 오디오만이라고 표시 |
| M4A, MP3, WAV | 동영상이 아니라 M4A로 보인다는 안내와 함께 .m4a(으)로 다운로드 등의 버튼 |
| GIF | 동영상이 아니라 GIF로 보인다는 안내. 움직이는 GIF는 이미지입니다 |
| 바이너리 | “동영상 형식으로 보이지 않습니다” 안내. 다운로드가 중간에 끊겼거나 원시 스트림 데이터인 경우가 많음 |
브라우저의 MediaRecorder로 마이크만 녹음한 WebM 파일도 여전히 WebM이므로 동영상으로 통과하고 오디오로 재생됩니다. MP4 계열에 대한 자세한 내용은 Base64를 MP4로를 참고하세요.
Base64 동영상은 어디서 오나
동영상 생성 API는 다운로드 URL 대신 JSON의 Base64 필드로 클립을 돌려주기도 합니다. 브라우저에서 만든 화면 녹화나 카메라 녹화는 Base64로 서버에 전송되는 경우가 많습니다. 테스트 스위트는 짧은 클립을 문자열로 넣어 두고, 일부 웹 페이지는 음소거된 배경 동영상을 data:video/mp4 URI로 인라인합니다. 이 방식과 그 비용은 data URI 성능에서 설명합니다. 이런 문자열을 만들려면 동영상을 Base64로를 사용하세요.
ffmpeg로 코덱 확인하고 변환하기
클립이 어떤 코덱을 쓰는지 보려면 디코딩한 뒤 ffprobe로 확인하세요.
base64 -d clip.b64 > clip.mp4
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,width,height -of csv=p=0 clip.mp4
HEVC 클립이라면 hevc,320,240이 출력됩니다. AAC 오디오와 함께 H.264로 다시 인코딩하면 모든 브라우저에서 재생되는 파일이 되고, +faststart는 인덱스를 앞으로 옮겨 파일 전체가 로드되기 전에 재생을 시작할 수 있게 합니다.
ffmpeg -i clip.mp4 -c:v libx264 -pix_fmt yuv420p -c:a aac -movflags +faststart clip-h264.mp4
명령줄 예시는 Bash에서 Base64에 더 있습니다.
자주 묻는 질문
Base64 동영상은 어떻게 재생하나요?
위 입력란에 Base64나 data:video/…;base64, URI를 붙여넣으면 동영상이 로드된 플레이어가 나타납니다. 파일 다운로드를 누르면 감지된 컨테이너에 맞는 확장자로 저장됩니다.
소리는 나는데 화면이 안 나오는 이유는 무엇인가요?
브라우저가 컨테이너는 읽을 수 있지만 비디오 코덱을 읽지 못하거나, 파일에 비디오 트랙이 아예 없는 경우입니다. 후자라면 크기(가로×세로) 행에 오디오만이라고 표시됩니다. HEVC를 지원하지 않는 브라우저에서 HEVC 동영상을 여는 것이 흔한 원인입니다.
iPhone으로 찍은 동영상이 재생되지 않는 이유는 무엇인가요?
iPhone은 기본적으로 HEVC(H.265)로, 흔히 MOV 파일에 녹화합니다. Safari는 재생하지만 Chrome, Edge, Firefox는 운영 체제와 하드웨어가 HEVC 디코더를 제공하는 경우에만 재생합니다. H.264로 변환하면 어디서나 재생됩니다.
플레이어는 얼마나 큰 Base64 동영상까지 처리할 수 있나요?
기기 메모리가 허락하는 만큼입니다. 50 MB 클립은 Base64로 약 7천만 자입니다. 4 MB를 넘는 입력은 텍스트 상자에 표시하지 않고 디코딩하며, 아주 큰 입력에서는 페이지가 잠시 멈춥니다.