読者です 読者をやめる 読者になる 読者になる

望月いちろうのREADME.md

書き溜めておいた技術記事や旅行記のバックアップです。

動画配信をするにはどんな技術が必要なのか調べてみた

RTSP

YouTubeやUStreamでのライブ配信ではこのプロトコルを利用してメディアを送信する。

www.kddi.com

RTSPとは、Real Time Streaming Protocolの略で、インターネットで動画や音声を配信するために利用されるプロトコルのこと。 動画や音声などのデータは、一般的なインターネット上のテキストコンテンツと異なり、時間軸の概念があるうえ、情報量も多い。そこで、このような動画や音声をインターネット上で効率よく伝送するためのしくみとして、IETFによって、標準化されたのがRTSPである。 具体的には、サーバーへのセッション開始指示、映像データの再生指示、セッションを維持した状態での再生の一時停止、再生の停止とセッションの解放などを行うための方法が規定されている。

これはあくまで通信の手順を定義したもの、実際のファイルの転送は(RTP/RTSP)というプロトコルを利用する

VoIPでは最も一般的な形式

http://www.ieice-hbkb.org/files/03/03gun_04hen_05.pdf

1-3-2-5 RTSPの動作概要 | 経済産業省 特許庁

RTMP

Flashが開発したプロトコル。 AbemaTVでは、配信者がこの形式でサーバーに動画を送信する。

利点

  • 暗号化が可能(RTMPS)

欠点

  • 特殊なプロトコルのため、対応しているオープンソースのサーバーが少ない。
  • 実運用ではWowzaなどのプロプリエタリのサーバーを利用する必要性がある。
  • 利用するポート番号(1935)がセキュリティなどで利用できないことがある。-> RTMPT(HTTPに偽装)

HLS (HTTP Live Streaming)

Appleが開発したリアルタイム・ストリーミング用の通信形式

HTTP Live Streamingは、通常のウェブサーバからHTTPを使ってオーディオとビデオを送信し、iPhone、 iPad、iPod touch、Apple TVなどのiOSベースのデバイス、およびデスクトップコンピュータ(Mac OS X)で再生するための機能です。HTTP Live Streamingは、ライブ放送と既録のコンテンツ(ビデオオン デマンド)のいずれにも対応しています。HTTP Live Streamingは、ビットレートの異なる複数の代替 ストリームをサポートし、クライアントソフトウェアはネットワーク帯域幅の変更に応じて、インテ リジェントにストリームを切り替えられます。HTTP Live Streamingはまた、HTTPSを使用したメディア の暗号化とユーザ認証にも対応しているため、発行者は作品を保護することができます。

仕組みは単純

最初に動画のファイル形式や長さなど、最初にストリーミング配信の手順全般を定義したファイル(m3u8ファイル)をサーバーから取得するプレイリスト形式の単純な仕組み。

次に、細切れになったメディアファイル(t2ファイル)を、HTTPリクエストで、サーバーから順番に取得していき、バッファを積み上げていく、巻き戻しやローカルでの再生にも対応している

このとき使用されるコンテナの「MPEG-2 TS」は地上デジタル放送にも利用される信頼ある形式である。

映像形式はH.264、音声形式はAACを利用するのが一般的だが、原理的には他の形式も可能

利点

  • 単純なHTTPを利用した形式であるため、仕組みが単純

  • HTTPSを利用することで、暗号化にも対応できる

  • ffmpegやnginxなどのオープンソースを利用して気軽に実装できる。

欠点

  • ブラウザで正式に対応しているのがSafariのみ、Chrome, IEは特殊なプラグインが必要

  • 配信サーバーが必要なので、大規模な利用ではサーバー負荷への対策が必要

実績

国内で一番有名なのは、abemaTV

実運用上の苦労は以下のサイトから伺える。

AbemaTV Developer Conference 2016