37
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

動画のストリーミング技術について初歩的なことをまとめた

Last updated at Posted at 2019-04-02

モチベーション

仕事で動画技術を扱うことになったので学習のために情報をまとめます。

ストリーミング

動画のファイルサイズは一般的に大きく、全てダウンロードしてから再生するのではユーザーの待ち時間が増えてしまいます。
またライブ配信を実現するためにも録画が完了していない状態で動画の再生ができなければなりません。
これを解決するために、ダウンロードと再生を並行する「ストリーミング」という方式があります。
と、一口にいってもどのようにダウンロードして再生していくかルール(プロトコル)が必要です。
その代表的なプロトコルがHLSとMPEG-DASHになります。

HLSとMPEG-DASH

どちらもHTTP通信を軸としたストリーミング技術ですが、開発している企業が異なります。

HLSとMPEG-DASHの対応状況

いくらかのブラウザはこれらのプロトコルに対応しています。

HLS

https://caniuse.com/#feat=http-live-streaming
2019/03/05時点では主要なところで、Edge, Safari, iOS-Safari, Android Browserが対応しているようです。
当たり前ですがApple主導なので、きっちり対応されています。

MPEG-DASH

https://caniuse.com/#search=mpeg-dash
2019/03/05時点ではEdgeのみ対応という状況でした。

HLS vs MPEG-DASH

実際のプロトコルの内容はまた別の機会に調べるとして、どちらがどういった点で優れたり異なっているのか気になります。
調べてみて大きな違いを感じたのは、CodecとDRMの差でした。

Codec

動画ファイルはサイズを小さくするために圧縮技術が使われています。
圧縮アルゴリズムのことをコーデックといいます。
動画の場合、映像と音声の2つからなるため映像についてはVideo Codec, 音声についてはAudio Codecとわけて考えます。

この2つでHLSとMPEG-DASHを比較すると以下のようになります。(2019/03/05時点での情報です)

Video Codec Audio Codec
HLS H.264, H.265 AAC, MP3
MPEG-DASH 縛りなし 縛りなし

HLSもMPEG-DASHもストリーミングに関するプロトコルなので、別途ビデオプレイヤー自体が各Codecに対応している必要があります。
それでもHLSにCodecの制限があるというのは、何か事情がありそうです。(ここは別の機会に調べてみることにします)

DRM

Digital Rights Managementの略でDRMで、デジタル著作権管理技術のことを指します。
HLSとMPEG-DASHの違いを調べるとDRMのことが話題に上がっていましたが、最近ではその差も少なくなっているように感じました。
(プロトコルの問題なのか、プレイヤーの実装の問題なのか、そのあたりの深いところにはたどり着けませんでした)
一応メインで使われる組み合わせとしては、間違ってないと思われるので表にまとめます。

DRM
HLS Fairplay
MPEG-DASH Widevine, PlayReady

まとめ

HLSとMPEG-DASHというストリーミング技術に触れてみましたが、まだまだ浅い部分しか調べられてません。
次はHLSとMPGE-DASHの違いを実際やりとりするデータを軸に調べてみたいと思います。

37
20
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?