コラム:キーフレームの挿入位置を実際に確認してみる
ffprobeを使ってGOP長の確認をすることができます。シーンチェンジ検出等がどの程度行われているかもこれを見ることで確認することができます(grepコマンドを利用しているため、Windowsユーザーの方は適宜読み替えてください)。
ffprobe -show_frames -select_streams v -pretty output_1080p.mp4 | grep "key_frame=1" -A 2
コラム:映像品質の妥当性を確認する
ビットレートやGOP長等、さまざまな画質に変化を与えるパラメータがあることがわかってきました。これらをパラメータチューニングしていった場合、それを客観的に評価することは時として重要となってきます。もし、あなたが動画配信に関わるエンジニアであり、サービスの責任者から品質の妥当性を問われたときに、どのような情報を提示するとよいでしょうか?
そういったときに便利な客観的な指標としてVMAFがあります。これはNetflixが開発した画質評価指標であり、0~100の値でオリジナルファイルからどの程度劣化しているかを定量化してくれます(100が最高品質)。
画質評価の手法はさまざまありますが、VMAFは知覚的に妥当な数字が求められるように開発されており、近年良く用いられる評価指標となっています。
下記のようなコマンドで確認することができます(「新しい映像の品質評価 libvmaf」より引用)。
ffmpeg -i 調べたい動画 -i 元の動画 -filter_complex "scale2ref=flags=bicubic,libvmaf=model=version=vmaf_v0.6.1\\:name=vmaf\\:enable_transform=0\\:enable_conf_interval=0:feature=name=psnr:log_path=vmaf.xml:log_fmt=xml:pool=mean:n_threads=4:n_subsample=1:shortest=1:repeatlast=0" -an -f null -
フレームごとに計算することも可能なため、平均値や中央値、標準偏差等を求めることで、更に細かく画質を評価することも可能です。
コラム:コーデックの「特許」について
動画配信において頭を悩ませる問題として「特許」があります。動画配信は非常に多くのテクノロジーによって支えられており、結果としてさまざまな特許が用いられています。
それらの数は時に数百、数千にも及ぶため、コーデック規格が策定される場合は、同時に特許についても議論され、多くの場合、特許を管理するパテントプールと呼ばれる団体によって権利管理と特許フィーの代理集金と分配が行われています。
しかしながら近年のコーデックでは、こうしたパテントプールが単独の団体にまとまらなかったり、パテントプールに属さない宣言をする権利元が出てきたりするような状況が散見されるようになりました。この場では語り尽くせないほどの多くの問題をはらんでいるため、興味がある方はH.265の特許にまつわる問題について検索してみると良いでしょう。
また、Google等が推進するロイヤリティフリーが謳われたコーデックであるVP9やAV1等も登場しています。しかし、これらはまだ互換性が低く、特許問題周りでもそこまで平和ではない状況であり、依然として不明瞭な状況となっています。
本連載の例で利用しているコーデック「H.264」の特許は「MPEG-LA」と呼ばれるパテントプール単独で管理されています。H.264は国際標準規格として策定されており、そのためFRAND宣言がされており、特許フィーが平等に請求されると考えて差し支えありません。
単一のパテントプールによって管理されている動画コーデックはある意味安心して利用することができると考えることもできます。弊社ではMPEG-LAとやり取りを行い、双方が合意したロジックを元に算出した特許使用料を納めています。
実際のエンドユーザー向けサービスの提供を行う場合は、知財に関する専門家と協議したうえで、どのような形でこれらの権利と向き合うか議論する必要があるといえます。
