개요
리눅스 셸 환경에서 ffmpeg를 활용하면 HTML5 <video> 태그에 적합한 형식으로 동영상 파일을 손쉽게 변환할 수 있습니다. 브라우저마다 지원하는 코덱이 다르기 때문에, 안정적인 크로스 브라우저 호환성을 확보하려면 MP4와 OGG 두 가지 포맷을 함께 준비하는 것이 좋습니다.
MP4로 변환하기
MP4로 변환할 때는 H.264 비디오 코덱과 AAC 오디오 코덱 조합을 사용해야 합니다. IE11 및 그 이전 버전의 Internet Explorer가 이 조합만 지원하기 때문입니다.
ffmpeg -i input.mov -vcodec h264 -acodec aac -strict -2 output.mp4
아래 명령어는 최대 호환성과 퀵타임(QuickTime) 재생 지원을 목표로 하는 예시입니다. -an 옵션으로 오디오 스트림 없이 input.mov 파일을 output2.mp4로 변환합니다.
ffmpeg -an -i input.mov -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -level 3 output2.mp4
각 옵션이 담당하는 역할은 다음과 같습니다.
-an: 오디오 스트림을 제거하고 영상만 인코딩-vcodec libx264: H.264 인코딩에 libx264 인코더 사용-pix_fmt yuv420p: 대부분의 플레이어와 호환되는 픽셀 포맷 지정-profile:v baseline -level 3: 구형 기기 및 모바일 환경에서의 재생 호환성 확보
OGG(OGV)로 변환하기
파이어폭스(Firefox)와 호환되는 OGG 비디오를 만들려면 별도 도구인 ffmpeg2theora가 시스템에 설치되어 있어야 합니다. 아래 예시에서 입력 파일은 앞선 단계에서 ffmpeg로 변환한 결과물(output.mp4)입니다.
ffmpeg2theora -o video_out_file.ogv output.mp4
마무리
이렇게 MP4(H.264/AAC)와 OGV(Theora) 두 가지 포맷을 준비해 두면 HTML5 비디오 태그에서 대부분의 주요 브라우저를 커버할 수 있습니다. 참고로 최신 브라우저 환경이라면 화질 대비 용량 효율이 더 좋은 WebM(VP9, AV1) 포맷도 함께 검토해 보는 것을 추천합니다.