AV1圧縮動画の作成とウェブ配信方法

AV1圧縮動画の作成とウェブ配信方法

(2020.05.14作成, 20.08.28更新)
=次世代動画圧縮コーデック AV1動画の作成とウェブ配信方法= 
AOMedia Video 1 (AV1) はインターネット上での動画配信を目的として非営利団体の Alliance for Open Media(AOMedia) が開発したオープンかつロイヤリティなしで自由に利用できる動画圧縮コーデック。主に VP9に基づき、DaalaとThorとVP10の技術を組み込んで開発され、2018年3月28日に仕様が一般公開された(下図、ビデオコーデック技術の発展歴史)。
VP9やHEVC/H.265の約20%の効率上昇を掲げている(下パネルを展開して確認)。
=AV1| VP9| H.264| H.265 Encoding comparison=
H.265は複雑で高額なライセンス料が必要となるので、その置き換えを目指し世界中の名立たる IT会社がプロモーターメンバーとして参加している。

そこで、早速各種AV1圧縮動画を作成して各種配信方式で提示して、その実力を検証してみた。

* 2021年 8月時点での動向は、DPSJ の記事「ビデオコーデックとエンコード、 知っておきたい最新情報」を参照。

I. AV1圧縮動画の作成方法
A) AviUtlの出力プラグイン「拡張SVT-AV1出力(GUI)Ex」を用いて、AV1_AAC圧縮MP4動画へ変換
拡張SVT-AV1出力(GUI)Exは、rigayaさんの日記兼メモ帳より「svtAV1guiEx 0.00 beta2」を入手して、原著の記載に準じて導入したが、全てのツールは最新にアップデートする必要があった。
=「拡張SVT-AV1出力(GUI)Ex」導入手順=
0) AviUtl: v1.10にアップデート(C:\Program Files (x86)\AviUtl)
1) svtAV1guiEx 0.00 beta1⇒ beta2を解凍して、原著に準じて Aviutl本体に手動でコピー(SvtAv1EncApp.exeは、C:\Program Files (x86)\AviUtl\SvtAv1EncApp.exe)
2) 音声エンコーダ:qaac_2.68.zipをこのcabinetより入手。解凍してqaac64.exeをAviutl本体にコピー(C:\Program Files (x86)\AviUtl\qaac64.exe)
3) mkv muxer;mkvtoolnix-64-bit-46.0.0-setup.exeを MKVToolNixより入手してインストール(C:\Program Files\MKVToolNix\mkvmerge.exe)
*以前から使用していたmkvmerge.exe v6.5.0では多重化出来ない・・・ダメだったので、別途アップデートインストール
4) mp4 muxer;gpac-0.8.0-rev1-gc1990d5c-master-x64.exeを こちらのGPACより入手。mp4boxのみをインストール(C:\Program Files\GPAC\mp4box.exe)
*以前から使用していた v0.6.0.6では多重化出来ない・・・ダメだったので、別途アップデートインストール
5) 出力プラグイン「拡張 SVT-AV1 出力(GUI) Ex」の設定画面で、SvtAv1EncApp.exe, qaac64.exe, mkvmerge.exe, mp4box.exeの場所を指定。
6) その他の設定は、mp4出力を標準に変更した以外は初期設定のままとした
7) ビデオ圧縮は、レート制御を[0-CPQ]→ [2-CVBR]に変更して、通信速度(ビットレート)を指定した。音声圧縮は、[ABR(AAC)ビットレート指定]→ [CVBR(AAC)ビットレート指定]に変更して指定した。
*CBR(固定ビットレート),VBR(可変ビットレート), ABR(平均ビットレート)の3種類
最終的に、今回の元動画は 解像度:720x408, AVC:695Kbps, AAC:117Kbpsの MP4動画を用いて、ビデオ圧縮を CVBR:695Kbps、音声圧縮を CVBR:128Kbpsに設定して出力した。

変換成績:ほぼ目標値の AV1:686Kbps、AAC:126Kbpsで変換された。
残念ながら、この出力プラグインでは AV1動画の汎用形式とされている AV1_Opus圧縮WebMへ変換出来ない。
II. Convertio(オンライン版ファイルコンバーター)で AV1_Opus圧縮WebM動画へ変換
オンライン上で MP4から AV1へ無料で変換可能だ(こちらからアクセス)。
コンテナ形式は MP4, MKV以外にも、WebMへ ビデオ圧縮:AV1/ VP8/ VP9、オーディオ圧縮:Vorbis/ Opusで変換可能となっている。
また、[画質の設定:50段階] ないし[ビットレート:自由に設定]も可能。
なお、VLC, XMedia Recode, HandBrakeは、最新版でも未だ AV1への変換機能を搭載していない。
=AV1圧縮WebM動画への変換設定=
お持ちのMP4をAV1に変換 オンラインで無料で使えるMP4からAV1へのコンバーター」のページで、
・ [ファイルを選ぶ]をクリックして、コンピュータの変換元動画を開く
・ [AV1]ボタンをクリックして、コンテナ形式:WEBMを選択
・[設定]ボタンをクリックして、今回は以下の如く設定
ビデオコーディク:AOMedia AV1、オーディオコーデック:今回は Opusを選択
変換成績
残念ながら、想定したような転送速度にならない(通常画質だと、極めて高い転送速度となってしまう。ビデオ:最低画質32、オーディオ:低に設定したら、700Kbps、128Kbps位になった)。
100MB以上のファイルや 3回以上投稿した場合、”あなたは一日あたり 10 変換分の制限を超えました” となって、直ぐに有料へ持ち込まれてしまう。
III. AV1圧縮MKV動画へ変換
・AV1_AAC圧縮MKV動画:AviUtlの「拡張SVT-AV1出力(GUI)Ex」にて変換
・AV1_Opus圧縮MKV動画:IIのWebM動画をmkvtoolnix-gui.exeでMux

IV. AV1圧縮MP4動画(1分14秒)のウェブ配信試験
IExplorerの機能拡張 VLC, DivXによる動画再生は ⇒ WXR-NASで検証
=AV1動画をTML5ビデオとして配信する方法=
HTML5 <video>のオプションを、 以下の如く記述して配信
*ビデオコーデック:H.264/AVCの場合は avc1.4D401E、H.265/HEVCの場合は hevc 、AV1の場合は av01.0.05M.08
*オーディオコーデック:AACの場合は mp4a.40.2、opusの場合は opus
例えば、AV1_AAC.MP4の場合:<source src="ビデオ名.mp4" type="video/mp4; codecs=av01.0.05M.08,mp4a.40.2" />
< 成績 >
以下は、特に断りがない限り AV1_AAC圧縮MP4動画の再生成績を示す
A) HTML5ビデオとして AV1圧縮動画再生の可否
(サイト「Caniuse.com」を参照)
更新・追加/ 訂正(2020.08.28)
a) AV1_AAC圧縮MP4動画
:問題なく再生可、:問題あるも再生可、:映像再生不可音声のみX:未対応
 
デバイスv
ブラウザ
 
Windows
10
Mac OS
10.13
Ubuntu
18.04
Android
iOS
13.3
9
10
IExplorer
X(v11)
MS Edge
注1)(v44)
(v83)
(v45)
(v45)
X(v45)
Safari
X(v13)
X(v13)
Chrome 69<
(v81)
(v81)
(v76)
(v84)
(v84)
X(v81)
Firefox 65<
(v76)
(v71)
(v69)
X(v79)
X(v79)
X(v25)
Opera 57<
(v68)
(v65)
(v63)
(v59)
(v59)
X(T2.3.2)
Vivaldi 2.1<
注2)(3.2)
注2)(3.2)
(2.7)
(3.2)
(3.2)
Windows, Mac OS, Ubuntuは、Chrome, Firefoxと Operaでのみサポートされていた。
Android(d-02K, 今回は Android 9)とiPad mini4(iOS13.3)のブラウザは、映像再生出来なかった。しかし、
<備考>2019年秋リリースされた Android10は AV1と Opusに対応した!
1) ドコモショップの店頭商品 Galaxy S20 5G搭載ブラウザ(Samsung Internet Browser)で検証したところ、試験した全ての AV1圧縮動画(AV1_AAC.MP4, V1_Opus.WebM, AV1_AAC/Opus.MKV)の再生が可能だった ・・・他のブラウザでは如何?
2) 2020年8月20日発売の Google Pixel 4aで検証したところ、
・Chrome(74): 音声のみ再生。映像の再生は不可だったが・・・
→ Chrome(84):試験した全ての AV1圧縮動画の再生が問題なく可能となった。
・MS Edge(45)、Opera(5.9)、Vivaidi(3.2):全ての AV1圧縮動画の再生可能
・Firefox(79): いずれのAV1圧縮動画も再生不可・・・残念ながら、今も未対応のままだ
注1) Microsoft Edge(MS Edge)
Windowsの MS Edge44は、ストアアプリ「AV1 Video Extension」をインストールしておけば、[MS Edge]や[映画 & TV]でも AV1動画を再生できるようになる。
一方、Chromiumベースの MS Edge83は、Windowsも Mac OSいずれも何故か?再生出来なかった(MS コミュニティ「記事」を参照)
?(゜_。)?
注2) Vivaldiは、v2.1で AV1をサポートした (VB-44942) が・・・
v3.2でも、Windows, Mac OSでは AV1圧縮動画のAACを再生出来ない ?(゜_。)?
(a) MP4形式のAV1動画:UbuntuとAndroid10では問題なく再生可能。WindowsとMac OSでは映像再生可能なるも、無声となってしまう ┓(´_`)┏ 残念
(b) WebM形式のAV1動画:「Quick Command Parameters」を検討していたら、YouTubeの AV1 Beta Launch PlaylistWebM形式のAV1動画では視聴可能という事に気づいた \(^o^)/
=Quick Command Parameters 引用文=
(c) MKV形式のAV1動画:UbuntuとAndroid10では問題なく再生可能。WindowsとMac OSでは 音声が Opusの場合は問題く再生可能だが、AACの場合には映像の再生は可能だが何故か 無声となってしまう
b) AV1_Opus圧縮WebM動画(AV1圧縮動画の汎用形式)
 
デバイスv
ブラウザ
 
Windows
10
Mac OS
10.13
Ubuntu
18.04
Android
iOS
13.3
9
10
IExplorer
X(v11)
MS Edge
注1)(v44)
(v83)
(v45)
(v45)
X(v45)
Safari
X(v13.1)
X(v13.1)
Chrome 69<
(v81)
(v81)
(v76)
(v84)
(v84)
X(v81)
Firefox 65<
(v76)
(v71)
(v69)
X(v79)
X(v79)
X(v25)
Opera 57<
(v68)
(v65)
(v63)
(v59)
(v59)
X(T2.3.2)
Vivaldi 2.1<
(3.2)
(3.2)
(2.7)
(3.2)
(3.2)
Windows, Mac OS, Ubuntuは、Chrome, Firefox, OperaとVivaldi(及び注1のMS Edge44)は、いずれも問題なく再生可能で一番汎用性が高かった。しかし、
Android 9とiPad mini4のブラウザは、いずれも映像再生出来なかった。

<参考>「video要素ーWikipedia(2020年5月13日)」の AV1圧縮WebM動画への対応状況は、正しくない!
c) AV1_AAC/Opus圧縮MKV動画
 
デバイスv
ブラウザ
 
Windows
10
Mac OS
10.13
Ubuntu
18.04
Android
iOS
13.3
9
10
IExplorer
X(v11)
MS Edge
注1)(v44)
(v83)
(v45)
(v45)
X(v45)
Safari
X(v13.1)
X(v13.1)
Chrome 69<
(v81)
(v81)
(v76)
(v84)
(v84)
X(v81)
Firefox 65<
X(v76)
X(v71)
X(v69)
X(v79)
X(v79)
X(v25)
Opera 57<
(v68)
(v65)
(v63)
(v59)
(v59)
X(T2.3.2)
Vivaldi 2.1<
注2)(3.2)
注2)(3.2)
(2.7)
(3.2)
(3.2)
Windows, Mac OS, Ubuntuは、Chromeと Opera(及び注1のMS Edge44)では 再生可能だったが、Firefoxは再生出来なかった。Vivaldiは下記の如く不可思議な対応
注意2) Vivaldiは、Windows, Mac OSの場合には 音声が Opusの場合は問題く再生可能だが、AACの場合には映像の再生は可能だが 無声となってしまう
Android 9とiPad mini4のブラウザは、いずれも映像再生出来なかった。
B) VLCの Web Pluginを用いた AV1圧縮動画のブラウザ埋め込み配信
Internet ExplorerとFirefox両ブラウザ向けに<object>タグ内に <embed>タグを入れて記述した。
=MP4動画を表示サイズ636x371で配信する場合=
VLC(VLC media player)3.0.7(32ビット版)以降をインストールした環境では(&ActiveX プラグインも導入されていれば)、IExplorer 11でのみ再生可能だ。
<補足試験> VLC Media PlayerでAV1動画のネットワークストリーミング再生
こちらの M3Uファイルを右クリックでダウンロードして、VLC3.0.5以降で再生
M3Uプレイリストファイルに、以下の順にリンクURLを記述
(1)H264_AAC.mp4、(2)AV1_AAC.mp4、(3)AV1_Opus.webm、(4)AV1_AAC.mkv、(5)AV1_Opus.mkv
*Android再生方法は、別記「VLC Media Playerでネットワークストリーミング」を参照
なお、iOSの VLC v3.2.8では、M3Uのプレイリスト/スライドショー機能が出来なくなっており、一括試験出来なかったので、個々に検証した。
<成績>
 
デバイス/ VLC v
ビデオ形式
 
Windows10
VLC3.0.10
MacOS10.13
VLC3.0.10
Ubuntu18.04
VLC3.0.10
Android 9
VLC3.2.12
iOS13.3
VLC3.2.8
H.264_AAC.MP4
AV1_AAC.MP4
AV1_Opus.WebM
AV1_AAC.MKV
AV1_Opus.MKV
C) IExplorer 11のムービー系アドオンによるAV1圧縮MP4動画のプラグイン再生
・SilverlightとDivX Web Playerでは、読み込みすら出来ない。
・QuickTimeとFlashでは、AV1映像の描画が出来ず音声のみの再生となる。
(*QuickTimeは、条件次第で HTML5ビデオとして再生される場合がある)

<参考1>AV1動画のシーク再生
現時点では、各種ブラウザや VLC Media Player 3.0.10及び Windows Media Player12(LAV Filters 0.74.1), MPC-BE(Video Decoder 1.5.5)いずれも、シーク操作によるスキップ/ ジャンプ再生が出来ないという不都合な問題点があり、今後普及させるためには AV1デコーダの最適化も図られる必要がある。
なお、Chrome, Firefoxなどは VLC開発の AV1デコーダ dav1dが採用されているようだ。

<参考2> Windows Media Player(WMP)によるAV1動画の再生
WMP 12は、ストアアプリAV1 Video ExtensionではAV1動画の再生が可能とならないが、コーデックパック LAV Filters が v0.74(2018.03.16)で dav1d AV1 decoderを搭載したので、Stand Alone再生が可能となる。と思いきや・・・・・・何時の間にか 再生出来なくなっていた
┓(´_`)┏
即ち、WMPがデフォルトで使っている Splitterは、LAV Filters の AV1デコーダーを利用出来ないのだ。そこで、
Win7DSFilterTweaker 6.3(2017.11.3)を用いて、Preferred decodersにて全デコーダーを LAV Video/ Audioへ変更し、Media Foundationにて Microsoftがデフォルトで使う MP4とMKVの使用を無効に設定したところ、
 
 
すると、LAV Splitterが利用されるようになり AV1動画の再生が可能となるが・・・
 
 
しかしながら、IExplorer11でMP4動画を再生出来なくなってしまう
なお、Win7DSFilterTweakerは v6.3以降更新されておらず、WebMファイルの再生を制御出来ない。
 
一方、
DV」0.78aプレイヤー(2009/02/08)は、DirectShow対応/依存の再生ソフト。
LAV Filtersが導入されていれば、Win7DSFilterTweakerで MP4とMKVの使用を無効に設定しなくても、LAV Splitterを利用してくれる。但し、初期設定のままだと以下のコンテナ動画が再生出来ないので、「オプション」メニューの「メディア」タブで対応する拡張子を追加登録する必要がある。 →MP4,MKV,WebM,VOB,OGM,SWF,DIVX,ratDVD
成績:MP4、MKV以外にも WebMファイルの再生も可能だ!