複数のブラウザをサポートするには、FFmpeg を使用して .mov
ファイルを MP4 コンテナと WebM コンテナの 2 つの異なるコンテナに変換する必要があります。実際には、コーデックを同時に指定します。現時点では、FFmpeg にデフォルトを使用するようにしています。
これらのコンセプトについて初めてご覧になる場合は、先にメディア ファイルの基本をお読みください。また、FFmpeg がインストールされていない場合は、メディア アプリケーションの基本を読んで、Docker で設定してください。
ここでは、推奨される Docker インストールと、ウェブ用にメディア ファイルを準備するの glocken.mov ファイルを使用しています。このファイルは media
ディレクトリに追加されています。このセクションのすべてのコマンドでは FFmpeg バージョン 4.3.2 を使用しました。
コンテナ
まず、ファイル内に音声ストリームと動画ストリームの両方を含む .mov
ファイルから、.mp4
ファイル拡張子と .webm
ファイル拡張子の 2 つのコンテナを作成する必要があります。コンテナとストリームの違いがわからない場合は、メディア ファイルの基本をご覧ください。
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
コーデック
次に、コーデックについて説明します。メディア ファイルの基本で説明したように、コーデックはコンテナ(ファイル形式)とは異なります。同じコンテナタイプの 2 つのファイルには、異なるコーデックを使用して圧縮されたデータが格納される場合があります。たとえば、WebM 形式では、Vorbis または Opus を使用して音声をエンコードできます。コーデックを変更するには、FFmpeg を使用します。たとえば、次のコマンドは、vorbis
オーディオ コーデックと av1
動画コーデックを含む .mkv
ファイルを出力します。
/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv
この例では、-c:a
フラグと -c:v
は、それぞれオーディオ コーデックと動画コーデックを指定するためのものです。
[メディア変換] ページには、コーデックを変換するために必要なコマンドが一覧表示されます。次の表に、FFmpeg で WebM ファイルと MP4 ファイルのコーデック変換に使用されるライブラリの概要を示します。これらは、それぞれ DASH と HLS に推奨される形式です。
動画
コーデック | 広告表示オプション | ライブラリ |
---|---|---|
av1 | WebM、mkv | libaom-av1 |
h264 | MP4 | libx264 |
vp9 | WebM | libvpx-vp9 |
音声
コーデック | 広告表示オプション | ライブラリ |
---|---|---|
AAC | MP4 | AAC |
opus | WebM | libopus |
vorbis | WebM | libvorbis |
次に、新しく作成したファイルのビットレートを変更する方法を説明します。