여러 브라우저를 지원하려면 FFmpeg를 사용하여 .mov
파일을 MP4 컨테이너와 WebM 컨테이너라는 두 가지 컨테이너로 변환해야 합니다. 실제로는 동시에 코덱을 지정할 가능성이 높습니다. 지금은 FFmpeg가 기본값을 사용하도록 허용합니다.
이러한 개념이 처음이라면 계속 진행하기 전에 미디어 파일 기본사항을 읽어보세요. FFmpeg가 설치되어 있지 않은 경우 미디어 애플리케이션 기본사항을 읽고 Docker로 FFmpeg를 설정하세요.
추천 Docker 설치와 media
디렉터리 내에 추가된 웹용 미디어 파일 준비의 glocken.mov 파일을 사용하고 있습니다. 이 섹션의 모든 명령어에는 FFmpeg 버전 4.3.2를 사용했습니다.
컨테이너
먼저 .mov
파일에서 .mp4
및 .webm
파일 확장자가 있는 두 개의 컨테이너를 만들어야 합니다. 이 컨테이너에는 파일 내에 오디오 스트림과 동영상 스트림이 모두 포함되어 있습니다.
컨테이너와 스트림의 차이를 모르는 경우 미디어 파일 기본사항에서 자세히 알아보세요.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
WebM은 MP4보다 만들 시간이 더 오래 걸립니다. 결과를 보면 당연한 결과입니다. MP4는 원본 파일 크기의 약 83%
로 압축되지만 WebM은 원본 크기의 78%
까지 압축되지만 훨씬 더 작을 수 있습니다.
결과는 다를 수 있습니다. FFmpeg 4.2.2
는 기본 동영상 비트 전송률을 200k
로 설정하고 4.3.2
에서는 기본 비트 전송률을 설정하지 않는다는 점에 유의해야 합니다.
따라서 이 동영상은 더 이상 원본의 4%
에 불과하지 않습니다. 미디어 파일이 있는 폴더에서 ls -a
bash 명령어를 사용하여 직접 확인할 수 있습니다.
예를 들면 다음과 같습니다.
/media # ls -l
-rw-r--r-- 1 root root 12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root root 10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root root 9503301 Mar 7 18:30 glocken.webm
작은 파일을 가져오려면 다음과 같이 하면 됩니다.
/media # ffmpeg -i glocken.mov -b:v 200k glocken.webm
...
frame= 300 fps=3.6 q=0.0 Lsize= 483kB time=00:00:10.01 bitrate= 395.0kbits/s speed=0.121x
video:359kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.356068%
/media # ls -l
-rw-r--r-- 1 root root 12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root root 10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root root 494497 Mar 7 18:45 glocken.webm
학습 내용 확인
결과를 확인하려면 미디어 애플리케이션 기본사항에 나와 있는 대로 FFmpeg 및 Shaka Packager를 사용합니다.
/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4
코덱
다음은 코덱입니다. 미디어 파일 기본사항에 명시된 대로 코덱은 컨테이너 (파일 형식)와 같지 않습니다. 동일한 컨테이너 유형의 두 파일은 서로 다른 코덱을 사용하여 압축된 데이터를 보유할 수 있습니다. 예를 들어 WebM 형식을 사용하면 Vorbis 또는 Opus를 사용하여 오디오를 인코딩할 수 있습니다. 코덱을 변경하기 위해
FFmpeg를 사용합니다. 예를 들어 이 명령어는 vorbis
오디오 코덱과 av1
동영상 코덱이 포함된 .mkv
파일을 출력합니다.
/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv
이 예에서 -c:a
플래그와 -c:v
는 각각 오디오 코덱과 동영상 코덱을 지정하는 데 사용됩니다.
미디어 변환 페이지에는 코덱을 변환하는 데 필요한 명령어가 나열되어 있습니다. 아래 표에는 WebM 및 MP4 파일의 코덱 변환을 실행하기 위해 FFmpeg에서 사용되는 라이브러리가 요약되어 있습니다. 각각 DASH 및 HLS에 권장되는 형식입니다.
동영상
코덱 | 확장 | 라이브러리 |
---|---|---|
av1 | WebM, mkv | libaom-av1 |
h264 | MP4 | libx264 |
vp9 | WebM | libvpx-vp9 |
오디오
코덱 | 확장 | 라이브러리 |
---|---|---|
aac | MP4 | aac |
opus | WebM | libopus |
vorbis | WebM | libvorbis |
다음으로 새로 만든 파일의 비트 전송률을 변경하는 방법을 알아봅니다.