HLS マニフェストとビデオの連結

この記事は HTTP ライブストリーミング(HLS)に焦点をあてていますが、基本的なコンセプトは他の HTTP ベースのストリーミングプロトコルにも有効です。HLS プロトコルを深く掘り下げることは、この記事の範囲を超えていますが、公開された標準規格を含め、豊富な情報がオンラインで入手可能です:HTTP ライブストリーミング

コンカチネーションとオールド・ウェイ

コンテンツは価値とイコールであり、動画の世界では、1つの動画を他の動画とミックスして新しいコンテンツを作ることで、より多くの価値を生み出すことができる。多くの場合、これは連結、つまり複数の動画をつなぎ合わせる機能によって行われる。さらに、編集リストを使ってクリップを作成することで、ノンリニアエディターの最も基本的な2つの機能が完成します。

連結は有望に見えるが、インフラと運用の両方に負担をもたらす可能性もある。ソーシャル・ビデオ・ポータルを想像してほしい。対象とするデバイスにもよるが、1つの動画につき、数個から数十個の出力形式があり得る。ライブラリの価値を高めるために複数の動画を連結することになれば、ストレージ・コストが大幅に増加し、資産管理も複雑になる。動画の新しい組み合わせが作成されるたびに、一連の固定資産が生成され、保管する必要がある。

HTTPライブ・ストリーミングとマニフェスト・ファイル

マニフェスト駆動のHTTPベース・ストリーミング・プロトコルの導入は、ダイナミックな視聴体験を生み出すためのまったく新しいパラダイムを生み出しました。従来、1 つのコンテンツから複数のクリップを組み合わせて配信する唯一の選択肢は、編集、つまり固定アセットの作成でした。HLS のような技術では、再生可能なアイテムはもはや動画ファイルではなく、単純なテキストファイルなので、動画に編集を加えることは、ワープロで文書に編集を加えることと同じです。

動画プラットフォームにとって、HLS m3u8 マニフェスト ファイルを扱う方法は 2 つあります。最も単純な方法は、m3u8 ファイルを個別の再生可能なアセットとして扱うことです。このモデルでは、m3u8 は分割された TS ファイルと一緒にオリジン サーバーに保存され、デバイスに配信されます。その結果、シンプルで素早く実装することができますが、m3u8ファイルは手動プロセスによってのみ変更することができます。

代わりに、マニフェストを動的に生成されるものとして扱うことで、事実上無限のクリップの組み合わせを視聴者に配信することが可能になります。このモデルでは、m3u8 はオンザフライで生成されるため、サーバーに置かれることはなく、要求されるたびに作成され配信されます。

ダイナミック・マニフェスト生成

マニフェスト ファイルとは何ですか?基本的には、いくつかのメタデータと動画のセグメントへのリンクの組み合わせです。

  • 模範的なビデオA
  • #EXTM3U
  • #EXT-X-MEDIA-SEQUENCE:0(エクスト-エックス-メディア-シーケンス:0
  • #EXT-X-TARGETDURATION:10
  • #EXTINF:10、
  • Exemplary_A_セグメント-01.ts
  • #EXTINF:10、
  • 例題_A_セグメント-02.ts

上記のm3u8には、10秒ずつの動画セグメントが2つあるので、動画全体の長さは20秒である。模範的なビデオAは、本当に素晴らしいビデオですが、長さは20秒です。では、次のような動画もあるとしましょう:

  • ビデオB
  • #EXTM3U
  • #EXT-X-MEDIA-SEQUENCE:0(エクスト-エックス-メディア-シーケンス:0
  • #EXT-X-TARGETDURATION:10
  • #EXTINF:10、
  • Exemplary_B_セグメント-01.ts
  • #EXTINF:10、
  • 例題_B_セグメント-02.ts

また、ある視聴者が、ビデオBを最初に、ビデオAを2番目に流して、両方のビデオを組み合わせて見ることに興奮することがわかっているとしよう:

  • 素晴らしいビデオ
  • #EXTM3U
  • #EXT-X-MEDIA-SEQUENCE:0(エクスト-エックス-メディア-シーケンス:0
  • #EXT-X-TARGETDURATION:10
  • #EXTINF:10、
  • Exemplary_B_セグメント-01.ts
  • #EXTINF:10、
  • 例題_B_セグメント-02.ts
  • #EXT-X-DISCONTINUITY
  • #EXTINF:10、
  • Exemplary_A_セグメント-01.ts
  • #EXTINF:10、
  • 例題_A_セグメント-02.ts

これで、オリジンに保存する必要のある恒久的なアセットを作成することなく、また、新しいアセットを作成するためにエディタを関与させることなく、瞬時に、ビデオBの後にビデオAが続く新しいビデオをユーザーのために生成しました。

m3u8に小さな追加要素があることにお気づきだろうか:

EXT-X-不連続

m3u8にこのタグを記述すると、プレーヤーは次のビデオセグメントが前回と異なる解像度または異なるオーディオプロファイルであることを期待するようになります。動画がすべて同じ解像度、コーデック、プロファイルでエンコードされている場合、このタグは省略できます。

新しいモデルの拡張

オンザフライのカスタム再生エクスペリエンスを提供できる動画プラットフォームを作成するための重労働は、m3u8 マニフェストを固定資産としてではなく、リクエストごとに生成する必要があるものとして扱うことです。つまり、バックエンドは、動画の各セグメントの場所、アイテムごとのセグメントの総数、および各セグメントの長さを認識していなければなりません。

これをもっとシンプルにする方法がある。たとえば、ファイル名を統一することで、すべてのセグメントについてベースとなるファイル名だけを知っていればよく、セグメントの繰り返しはプログラムで処理することができます。また、最終セグメントを除くすべてのセグメントを同じ継続時間とし、最終セグメントの継続時間のみを保存すればよい。したがって、多くのセグメントを含む 1 つの動画ファイルに対して保存する必要があるのは、 ベースパス、ベースファイル名、セグメント数、平均セグメント長、最終セグメントの長さだけです。

長編タイトルでさえもシーンの組み合わせとみなすことで、あるいはさらにシーンをショットの組み合わせとみなすことで、ダイナミックなマニフェスト生成によって解き放たれるパワーは驚くほど大きくなる。早期に計画し構築すれば、配信プラットフォームのアーキテクチャは、運用コストやインフラストラクチャのコストを増加させることなく、非常に多くの柔軟性を実現できます。

アビッドテクノロジーがカスタマイズされた教育機能を生み出した理由

ブライトコーブのお客様がどのように当社のテクノロジーを活用し、実装によって測定可能なメリットを実現しているかを探るのは、いつも興味深いことです。特に、Avid Technologyが Brightcove をどのように使用しているかを知るのは楽しいことでした。私たちはオンライン動画コンテンツの配信と管理を支援していますが、Avid は多くの場合、動画開発プロセスで使用されるクリエイティブ ツールです。

当社と同じくマサチューセッツ州を拠点とするAvidは、ビデオおよびオーディオ制作技術、特にデジタル・ノンリニア編集システム、管理および配信サービスを専門としています。ハリウッドからマディソン・アベニューまで、クリエイティブ・プロフェッショナルは、ビジュアル・ストーリーテリングのニーズを満たすために、アビッドの製品群を信頼しています。1987年の設立以来、アビッドの技術革新は、アカデミー賞2部門、グラミー賞1部門、エミー賞14部門を含む数百もの賞を受賞しており、同社は、確かに "ビデオ・クレジット "を獲得しています。

では、Avid が Brightcove を選んだ理由は何でしょうか。Avid は動画開発のエキスパートですが、動画配信のベスト プラクティスについては外部の専門知識を求めていました。当社の顧客事例では、Avid と Brightcove の関係についてさらに詳しく説明していますが、この投稿で簡単な概要を説明したいと思います。

基本的に、Avidのオンライン・ビデオへの道は、同社がビデオを含むライブ・ウェブキャスティングのオプションを調査し始めた2010年春に始まります。最終的にAvidは、Flashベースのウェブキャスティング・ソリューションをDIYで構築し、チャットとビデオの両方を組み込んでインタラクティブな体験を実現しました。この知識を手に、同社は、オンデマンドの視聴機能を追加できるオンライン・ビデオ・プラットフォームの調査を開始しました。

2012 年 3 月、Avid はオンライン動画プラットフォームとして Brightcove を選択しました。それ以来、Avid は Web サイトのヘルプに動画を統合し、Avid ソフトウェア内で作業中に質問が生じたときに、ユーザをチュートリアル動画コンテンツに誘導しています。現在、Avid チームは、動画コンテンツ マーケティング資産を Video Cloud に移行し、簡単に整理・管理できるようにするとともに、モバイル機器向けに最適化できるように取り組んでいます。将来、Avid は Brightcove を活用して動画主導の SEO を改善し、Web サイトにユーザー生成コンテンツを追加する予定です。

PUMA、オンライン動画で顧客エンゲージメントを促進

ブランドが顧客と持続的な関係を築く上で、オンライン動画がコンテンツ・マーケティングのエコシステムで果たす役割については、これまでにも何度か取り上げてきた。世界で最も有名なフットウェア・アパレルブランドの1つであるPUMAは、動画の力とそれが顧客とのエンゲージメントを高めるのに役立つことを理解しているマーケティング担当者の好例です。

PUMAは、製品をサポートするだけでなく、顧客を旅に誘うために、世界中でさまざまなビデオコンテンツを制作・公開している。PUMAは最先端の製品で知られているが、そのブランドは、製品を置くコンテクストとブランドが描くライフスタイルによって、真に生き生きとしたものになる。PUMAは、エンゲージメントの機会として、またケイデンスに特化したマルチスクリーン体験に顧客を誘導する方法として、動画に注目している。

この戦略は、2012年のロンドンオリンピックで大いに活用された。PUMAは、PUMAがスポンサーを務めるジャマイカのスプリンター、ウサイン・ボルトと彼の100メートルと200メートルでの壮絶なパフォーマンスを中心に、イベントやコンテンツをタイミングよく展開し、ライブビデオコンテンツを通じて、顧客が直接、あるいは遠隔から交流できるブランド環境全体を作り上げた。

最近、PUMA のデジタル戦略責任者である Jay Basnight 氏と面会し、同社の動画戦略とエンゲージメント促進における動画の影響について詳しく伺いました。Jay 氏は、動画の重要性と PUMA が成功をどのように測定するか、また同社が Brightcove 動画プラットフォームを使用して世界中の動画取り組みをどのようにサポートしているかについて詳しく語っています。

ブライトコーブで SALESFORCE の一括 API と APEX コードを使用する

ブライトコーブでは、顧客情報の管理に Salesforce を使用しています。営業、アカウント管理、サポート、財務の各チームも、セールス リードへの連絡、サポート ケースの追跡、利用レポートの作成など、さまざまな活動に Salesforce を使用しています。顧客データをタイムリーかつ信頼性の高い方法で Salesforce にプッシュし続けることは、当社のビジネスにとって重要です。

当社製品のデータ・モデルは、ユーザーとアカウントの間の多対多の関係をサポートしています。アカウント オブジェクトは、大きな組織内の組織または部署を表し、ユーザー オブジェクトは、1 つまたは複数の組織で働く個人を表します。Salesforce では、組み込みの Contact オブジェクトをカスタマイズしてブライトコーブ サービスの各ユーザを表し、BCAccount というカスタム オブジェクトを定義してアカウントを表します(図 1 を参照)。

図1

図 1.Brightcove サービスと Salesforce のデータ モデル

数年前、Salesforce SOAP API と quartz を使用してデータ同期機能を構築しましたが、この実装にはいくつかの問題がありました。大きな問題は2つあります:

  • チャットが多すぎて遅い。Salesforceに同期できるオブジェクトは、1時間に700個だけです。
  • データモデルに変更を加えるには、多くの労力が必要です。オブジェクトに新しいフィールドを追加するには、Salesforce から新しい WSDL ファイルをエクスポートし、WSDL ファイルから Java クラスを生成する必要があります。

そこで、Salesforce のバルク APIApex コードを使用して、新しい同期システムを構築することにしました。新しい実装は、RedLineと呼ばれるデータプッシュエンジンと、RedLineからプッシュされたバルクデータを処理するための一連のSalesforce Apexクラスで構成されています。

図2

図2.新しいデータの同期

RedLine は、他の Brightcove サービスから独立したスタンドアロン サービスとして、軽量の Ruby Web サーバーである Sinatra を使用して構築されています。RedLine は rufus スケジューラを使用し、RESTful API を介して Brightcove からオブジェクトの作成、更新、削除を定期的にクエリします。その後、RedLine は JSON 応答を CSV に変換し、一括要求として Salesforce に送信します。Salesforce には、一括要求ごとに 10,000 オブジェクトという制限があります。一括要求は Salesforce 内で非同期に処理されるため、ブライトコーブのサービスも RedLine も、Salesforce へのデータ送信後に待機する必要はありません。

ユーザー オブジェクトとアカウント オブジェクトを Salesforce オブジェクトに適合させるなど、一括要求を処理する Apex クラスをいくつか作成し、Apex クラスを Salesforce にデプロイして、データが一括要求として到着したらこれらのクラスを実行するように Apex バッチ ジョブをスケジューリングしました。このように、Salesforce データ モデル用のコードはブライトコーブのサービスには存在せず、Salesforce Apex コードのみが Salesforce データ モデルを処理する必要があります。Salesforce では、一括要求と Apex バッチ ジョブの両方に対応する一連の監視ツールを提供しています。

バルクリクエストの処理中にエラーが発生した場合は、Salesforce Web UI で簡単に確認できます。また、定期的に実行される Apex クラスをデプロイして、バルクリクエストが予想される頻度で到着しているかどうかをチェックし、リクエストがしばらく到着していない場合は警告を発します。

新しい同期システムでは、ユーザーまたはアカウント オブジェクトの新しいフィールドの変更をリリースするには、Salesforce カスタム オブジェクトに新しいフィールドを追加し、Brightcove サービス API の JSON 応答で新しいフィールドを公開するだけです。RedLine は、一括要求で JSON の新しいフィールドを CSV の新しい列として変換するため、オブジェクト形式の変更のために RedLine を変更したり再起動したりする必要はありません。

アカウント・オブジェクトに4回、ユーザー・オブジェクトに1回の変更がありましたが、これらの変更のためにRedLineのコードを1行も変更する必要はありませんでした。古いSOAP APIベースの同期システムでは、ユーザーオブジェクトやアカウントオブジェクトの新しいフィールドを同期するのに1週間から2週間かかっていました。

この新しい同期アプリケーションを本番環境で8ヶ月間稼動させた結果、いくつかのバーストデータ変更を優雅に処理することができました。最近では、デプロイ中に900アカウントのバッチ変更が行われましたが、それらすべてが1分未満でSalesforceに同期されました(ほとんどの時間はSalesforceで実行されているApexクラスによって費やされました)。以前の同期システムでは、同じ量のオブジェクトを同期するのに1時間以上かかっていました。

グーグル・コンピュート・エンジンを使ったビデオのトランスコーディング

クラウド・コンピューティングの世界にいる我々にとって、2012年のGoogle I/Oで最もエキサイティングだったのは、スカイダイバーがグラスを着用することでも、新しいタブレットでもなかった。大きなニュースは、グーグルが現在アマゾン・ウェブ・サービス(AWS)が独占しているクラウド・インフラストラクチャ・アズ・ア・サービスの分野に参入するというものだった。具体的には、GoogleはAmazon EC2に対抗するため、Google Compute Engineと呼ばれる新しいサービスを開始した。

これはエキサイティングだ。世界はもう1つ、堅牢でパフォーマンスが高く、よく設計されたクラウド仮想マシンサービスを必要としている。Rackspaceなどには申し訳ないが、この分野は長い間EC2が独走してきた。Googleは明らかに専門知識と規模を持っており、彼らがそれに固執するならば、深刻な競争相手となるだろう。

どうですか?初期の報告はポジティブだ。Google Compute Engine(GCE)はよく設計され、よく実行され、グーグルが長年使ってきたインフラをベースにしている。パフォーマンスは良好で、特にディスクI/O、ブート時間、一貫性は、歴史的にEC2の得意分野ではなかった。しかし、GCEはクラウド・ビデオ・トランスコーディングにどの程度適しているのだろうか?より多くのテストが必要であることは認めつつ、いくつかの予備的な結果を得た。以下は、GCEとEC2の両方でZencoderソフトウェアを使用したビデオ・トランスコードとファイル転送の基本的なテストである。

生のトランスコード速度

パフォーマンスは私たちの最優先事項ですので、Zencoderは当社が見つけることができる最速のサーバーを使用しています。EC2では、2つのサイズの高速デュアルCPUマシンであるCluster Computeインスタンスを使用しています:4XLと8XLです。これらのインスタンスを、現在シングルCPUの8コア・サーバーである最速のGCEインスタンス・タイプと比較しました。

サーバーCPU
GCE 8コアインテル Xeon (Sandy Bridge - おそらく E5-2670) - 8コア @ 2.60GHz
EC2 cc1.4xラージデュアルIntel Xeon X5570 - 8コア@2.93GHz/コア
EC2 cc2.8xラージデュアルIntel Xeon E5-2670 - 16コア@2.60GHz/コア

これらのテストは、640×360および1280×720解像度のH.264ソースビデオを使用し、同じシングルパス出力トランスコード設定(H.264ベースラインプロファイル、AAC、ワンパス一定品質トランスコードなど)を使用してZencoderでエンコードした。

Google Compute EngineとAmazon EC2の比較

サーバー決議同時エンコード時間(秒)1,000人当たりのコスト
EC2 cc1.4xラージ640×360615.87$0.96
EC2 cc2.8xラージ640×36069.93$1.10
GCE 8コア640×360621.05$1.13
GCE 8コア640×36016.01$1.94
EC2 cc1.4xラージ640×36015.96$2.15
EC2 cc1.4xラージ1280×720648.58$2.92
EC2 cc2.8xラージ640×36014.99$3.33
EC2 cc2.8xラージ1280×720630.74$3.42
GCE 8コア1280×720668.15$3.66
EC2 cc1.4xラージ1280×720112.89$4.65
GCE 8コア1280×720116.01$5.16
EC2 cc2.8xラージ1280×720110.92$7.28

デフォルトのZencoder設定を使用すると、どちらのタイプのEC2インスタンスもGCEよりも高速である。経済性はもう少し近く、4XL EC2インスタンスとGCEの間に明確な勝者はいない。AWSの顧客は、リザーブドインスタンスやスポットインスタンスを利用することで、さらなるコスト削減を図ることができるが、GCEは、生の速度よりもコストを優先するトランスコードには有効な選択肢だ。16コアのEC2インスタンスは、GCEの8コアインスタンスに比べ、同時6トランスコードで負荷がかかった場合、およそ2倍高速であることがわかった。

同じようなクロック速度だが、コア数が半分であることを考えると、これは予想通りだ。しかし、グーグルが同様の16コアのマシンを追加すれば、同等のトランスコード速度になる可能性がある。

転送速度

クラウドでビデオをトランスコードする場合、ネットワークI/OはCPUと同じくらい重要です。これは、高ビットレートのコンテンツを扱う顧客(放送局、スタジオ、クリエイター)には特に当てはまる。では、GCEの転送速度はEC2と比較してどうだろうか。これをテストするため、4組のベンチマークを実行した:

  • アマゾンS3からアマゾンEC2へ
  • Amazon S3からGoogle Compute Engineへ
  • グーグル・クラウド・ストレージからアマゾンEC2へ
  • Google Cloud StorageからGoogle Compute Engineへ

Googleクラウドストレージ(GCS)とAmazon S3に保存された同じ1GBの動画ファイルをテストした。転送には10回のHTTP接続を使用した(Zencoderは転送速度を最適化するためにデフォルトでこのようにしており、HTTPでの大容量ファイル転送を劇的に高速化することができる)。

GCEとEC2の転送速度比較

 転送速度(Mbps)サーバー帯域幅
S3からGCEへ470.961 Gbps
S3からEC2へ c1.xlarge644.291 Gbps
S3からEC2へcc2.8xlarge1458.3210 Gbps
GCSからGCEへ202.601 Gbps
GCSからEC2へ c1.xlarge378.281 Gbps
GCSからEC2へcc2.8xlarge641.3410 Gbps

これは興味深い。アマゾンからアマゾンへの転送は速いと予想していた。しかし、GoogleからGoogleへの転送も速いと予想していたが、そうではなかった。実際、GCSはS3より遅く、GCEの転送はEC2より遅いようだ。たとえGoogleをコンピュート用に使っていても、ストレージにはS3を使った方がいいかもしれない。S3からGCEへの転送は、GCSからGCEへの転送よりも2.3倍速かった。

さらなる検査が必要

これらの結果は予備的なものである。より多くの変数を考慮したさらなるテストが必要である。

  • インスタンス間の差異。これは特にファイル転送に当てはまり、ネットワーク条件やインスタンスのばらつきによって大きく異なる可能性があります。
  • その他のアプリケーション。これらのベンチマークは、CPUに縛られるベンチマークであるトランスコーディングのみを対象としている。その他のアプリケーションは、ディスクやメモリーなどによって制限されるため、これらのテストはトランスコーディング以外のことには関係ない。
  • スケーラビリティ。スケーラビリティは、ビデオトランスコーディングにクラウドを使用する人にとって非常に重要である。数万台(またはそれ以上)のサーバーという巨大なスケールに関して、GCEがEC2と比較してどうなのかを確認するためには、さらなるテストが必要だ。ユーザーはどの時点で容量の問題に直面するのか?パフォーマンスの問題?設計の限界?不安定性?

クラウドインフラの未来

この初期のテストではEC2が勝っているが、我々はGoogle Compute Engineに期待している。高性能トランスコーディングの本格的な競争相手になるためには、グーグルはより高速なCPUを搭載したより大規模なインスタンスを追加する必要がある。しかし、新しいインスタンスタイプを追加するのは簡単だ。グーグルを妨げるものは何もない。難しいのは、堅牢で性能が高く、機能が完全でスケーラブルなクラウドプラットフォームを構築することであり、グーグルはそれに成功しているようだ。グーグルが長期的にこの製品と開発者にコミットするならば、クラウド仮想化の世界は2番目の正当なプレーヤーを得たことになるかもしれない。

ウェブ、モバイル、コネクテッドTVのためのクローズドキャプション

クローズド・キャプションは、アクセシビリティとユーザビリティにとって良いことであり、インターネット・ビデオが成熟に向かって前進するための、また新たなマイルストーンである。残念ながら、クローズド・キャプションは、単一の技術やビデオの「機能」として「オン」にできるものではありません。多くのフォーマット、標準、アプローチがある。

クローズドキャプションは、デジタルビデオの他の部分と同様、厄介なもので、マルチスクリーンパブリッシャーにとっては特に難しいものです。今日、ウェブ、モバイル、コネクテッドTV向けに動画を配信したい場合、クローズドキャプションについて何を知っておく必要があるでしょうか?

この記事では、クローズド・キャプションの仕組み、知っておくべきフォーマット、すべての画面でクローズド・キャプションを有効にする方法など、基本的なことを概説します。

クローズド・キャプションの仕組み

まず理解しなければならないのは、クローズド・キャプションがどのように配信され、保存され、読まれるかである。現在、主に2つのアプローチがある。

  • ビデオ内に埋め込む。CEA-608、CEA-708、DVB-T、DVB-S、WST。これらのキャプション・フォーマットは、データ・トラックとして、またはビデオ・ストリーム自体に埋め込まれて、ビデオ・ファイルに直接書き込まれる。放送テレビは、iOSと同様にこの方法を採用している。
  • 別ファイルとして保存。DFXP、SAMI、SMPTE-TT、TTML、EBU-TT(XML)、WebVTT、SRT(テキスト)、SCC、EBU-STL(バイナリ)。これらのフォーマットは、動画自体に埋め込まれるのではなく、動画と一緒にプレーヤーにキャプション情報を渡します。この方式は通常、ブラウザベースの動画再生で使用される。

字幕とクローズドキャプションの違い

字幕についてはどうですか?クローズド・キャプションと同じものなのでしょうか?主な違いは3つあります。

  • 目標クローズド・キャプションはアクセシビリティ機能のひとつで、耳の不自由な方でもビデオを視聴できるようにするものです。字幕は国際化機能であり、話し言葉を理解できない人々がビデオを利用できるようにします。言い換えれば、ミュートでビデオを見るには字幕を使い、理解できない言語のビデオを見るには字幕を使うということです。注:この区別は北米では通用しますが、世界の多くの国ではクローズド・キャプションと字幕を区別していません。

  • 保存。歴史的に、キャプションはビデオに埋め込まれ、字幕は外部に保存されてきました(下記のCEA-608を参照)。なぜなら、字幕は常にビデオとともに提供されるべきものであり、難聴者のための100%のアクセシビリティが法律で義務付けられているからです。ドイツで放送されるドイツ語のビデオにはドイツ語の字幕は必要ありませんが、フランスで放送される同じビデオには字幕が必要なのです。

  • 再生。キャプションはビデオと一緒に渡され、テレビやその他のコンシューマー機器によって解釈/表示されるため、視聴者はテレビ自体を使っていつでも自分でオン/オフを切り替えることができますが、言語を選択するオプションがあることはほとんどありません。このような状況で、翻訳目的で字幕が追加される場合、一般的にハード・サブタイトル(下記参照)であるため、無効にすることはできません。しかし、DVD/ブルーレイ/VODビデオを見る場合、字幕を表示するかどうか、またどの言語で表示するかは、再生機器がコントロールします。

フォーマットと規格

クローズドキャプションや字幕のフォーマットや規格は何十種類もあります。ここでは、インターネット動画で最も重要なものを紹介します。

  • CEA-608。ライン21とも呼ばれるCEA-608キャプションは、米国とカナダのアナログテレビで使用されているNTSC規格である。ライン21キャプションは、放送のプレイアウト機器によって、ビデオストリームの隠れた領域に直接エンコードされます。番組の上部に白いバーやドットが表示されているのを見たことがあれば、それがライン21キャプションです。
  • SCC。このファイルには、Scenarist Closed Captionフォーマットのキャプションが含まれています。CEA-608データの表現として、SMTPEタイムコードと対応するエンコードされたキャプションデータが含まれています。
  • CEA-708。これは、米国とカナダにおけるATSCデジタルテレビ(DTV)ストリームのクローズドキャプションの標準である。現在、ビデオストリームとは別にCEA-708キャプションを保存するための標準ファイル形式はありません。
  • TTML。Timed Text Markup Languageは、テキストとオーディオやビデオなどの他のメディアの同期を記述します。詳しくはW3C TTML勧告をご覧ください。
  • DFXP。これはW3Cによって定義されたTTMLのプロファイルです。DFXPファイルには、キャプションデータをいつ、どのように表示するかを定義したTTMLが含まれています。DFXPは、Distribution Format Exchange Profileの略です。DFXPとTTMLはしばしば同義語として使われます。
  • SMPTE-TT。Society of Motion Picture and Television Engineers - Timed Textは、DFXPプロファイルの拡張で、他のキャプションフォーマットや情報項目にはあるが、DFXPにはない3つの拡張子のサポートを追加したものである:#data、#image、#informationです。SMPTE-TTは、FCCセーフハーバーフォーマットでもあります。ビデオコンテンツ制作者がこのフォーマットで配信者にキャプションを提供すれば、アクセシブルなフォーマットでキャプションを提供する義務を果たしたことになります。ただし、ビデオコンテンツ制作者と配信事業者は、別のフォーマットで合意する自由があります。
  • SAMI。Synchronized Accessible Media InterchangeはHTMLをベースにしており、Microsoft Encarta EncyclopediaやWindows Media Playerなどの製品用にMicrosoft社によって開発された。SAMIは、多くのデスクトップビデオプレーヤーでサポートされています。
  • EBU-STL。これはEBU規格で使用されているバイナリ形式で、個別の.STLファイルに格納されている。
  • EBU-TT。これはEBUがサポートする新しいフォーマットで、TTMLに基づいている。EBU-TTはTTMLの厳密なサブセットであり、EBU-TT文書は有効なTTML文書であるが、一部のTTML文書はEBU-TTでサポートされていない機能を含むため、有効なEBU-TT文書ではない。
  • SRT。これは、動画から字幕やキャプションを抽出するためのWindowsベースのオープンソースツールであるSubRipによって作成されたフォーマットです。SRTは、デスクトップのビデオプレーヤーで広くサポートされています。
  • WebVTT。これはSRTに似たテキスト形式である。Web Hypertext Application Technology Working Group(WHATWG)は、HTML5ビデオ・クローズド・キャプションの標準としてWebVTTを提案している。
  • ハード字幕。ハードサブタイトルは定義上、クローズドキャプションではありません。ハードサブタイトルはビデオ自体にエンコードされたオーバーレイテキストであるため、クローズドキャプションやソフトサブタイトルとは異なり、オン/オフを切り替えることはできません。可能な限り、一般的にはソフト字幕またはクローズドキャプションが好まれますが、クローズドキャプションに対応していないデバイスやプレーヤーをターゲットにする場合は、ハード字幕が便利です。

あらゆるデバイスに対応するキャプション

どのようなフォーマットが、どのような機器やプレーヤーで使われているのか?

  • HTML5。キャプションはまだブラウザによって広くサポートされていませんが、時間の経過とともに変わっていくでしょう。競合する2つの標準があります:W3Cが提案したTTMLと、WHATWGが提案したWebVTTです。現時点では、ChromeはWebVTTを限定的にサポートしており、Safari、Firefox、OperaはすべてWebVTTのサポートに取り組んでいます。ブラウザがネイティブでフォーマットをサポートするまで、Video.jsのようなHTML5プレーヤ・フレームワークは、外部ファイルを解析することにより、Javascriptを介してキャプションをサポートすることができます(Video.jsは現在WebVTTキャプションをサポートしています)。
  • iOS。アップルは異なるアプローチを取っており、CEA-708/ATSCレガシーエンコーディングの修正版を使用してCEA-608キャプションを使用しています。つまり、HTML5 とは異なり、トランスコード時にキャプションを追加する必要があります。Brightcove Zencoder は、iOS 用 HTTP ライブ ストリーミング動画にキャプションを追加できます。
  • アンドロイド。ビデオプレーヤーのサポートはまだ断片的で問題がある。キャプションのサポートは、明らかにOSのバージョンと使用するプレーヤーに依存します。
  • その他のモバイル機器。クローズド・キャプションにまったく対応していないものもあり、ハード・サブタイトルが唯一の選択肢となる場合もあります。
  • Roku。外部SRTファイルによるキャプションをサポート。
  • その他のコネクテッドTVプラットフォーム。まだクローズドキャプションに対応していないものもある。しかし、すぐに対応するだろう。現在市場に出回っているすべてのテレビ、コンソール、ケーブルボックス、ブルーレイプレーヤーは、インターネットコンテンツのストリーミングを望んでおり、今後1年半の間に、クローズドキャプションは必須となるだろう。そのため、ソニー、サムスン、ヴィジオ、グーグルTVなどは、いずれキャプション・サポートをアプリケーション開発フレームワークの一部にすることになるだろう。残念ながら、どのようなフォーマットが使用されるかはまだ明らかではない。おそらく、今後何年にもわたって、さまざまなプラットフォームが互換性のないさまざまなフォーマットをサポートし続けるだろう。

クローズド・キャプションの要件

クローズド・キャプションの状況は時間とともに変化し、成熟していきますが、2012年現在、一般的なデバイスでクローズド・キャプションをサポートするための最も一般的な要件は以下のとおりです。

  • クローズドキャプションの有効・無効をプレーヤー側でコントロールできるウェブプレーヤー。
  • WebVTT、TTML、またはSRTのようなフォーマットを使用した、キャプションデータの外部ファイル。複数のファイルが必要な場合もあります(Roku用のSRTとHTML5用のWebVTTなど)。
  • Zencoderのように、iPad/iPhone配信用のHTTPライブストリーミングにクローズドキャプションを埋め込むことをサポートするトランスコーダ。Zencoderは、TTMLを含むさまざまな形式のキャプション情報を受け入れることができるため、パブリッシャーは1つのTTMLファイルをウェブ再生とiOSビデオ用Zencoderへの入力の両方に使用することができます。

それ以上は難しくなります。他のデバイスには他の入力フォーマットが必要になるかもしれないし、レガシーデバイス間で100%の互換性を保つには、おそらく焼き込みの字幕が必要になることでしょう。

Brightcove Zencoder とキャプション

Brightcove Zencoderは、2 つの形式のクローズド キャプションをサポートします:HLS を使用した iOS 機器用の CEA-608 スタイルのキャプションと、CEA-608 キャプション トラックを含む MP4 ファイルです。入力側では、MP4 ファイルの SCC、SAMI、DFXP/TTML/SMPTE-TT、および CEA-608 キャプション トラックをサポートします。

これらのフォーマットは、トランスコードの時点でビデオファイルに追加されるためです。そのため、iPadやiPhone向けのキャプションをサポートしていなければ、これらのデバイス向けにパブリッシングするお客様はクローズドキャプションを使用できません。将来的には、受け入れるキャプション形式の範囲を拡大し、外部キャプションファイルの形式変換(TTMLからWebVTTなど)などのサービスを提供する予定です。

一方、1 つのキャプション ファイルと適切な HTML5 プレーヤがあれば、ブライトコーブの顧客は、Web、モバイル、Connected TV 機器向けにキャプション付き動画を作成するために必要なすべてを手に入れることができます。

アプリクラウド:ウェブ開発者の体験レポート

ウェブ開発者兼デザイナーとして13年間、Javaから始まり、PHP、そしてRubyと、新しいテクノロジーに難なく適応してきました。長い間「Flashスチーマー」に没頭し、PrototypeやjQueryのような主要なUIライブラリを探求しながら、急速に進化するウェブ標準に対応してきました。

しかし、多くのウェブ開発者がそうであるように、私はモバイル・アプリケーションへの飛躍に乗り遅れた。C++やObjective-Cのような低レベル言語の経験がなく、それらを学ぶ時間もなかった。Javaで "小さな "アプリケーションを作るというアイデアも、私が嵩張り広範な言語だと感じたJavaも同様に魅力的ではなかった。

私はいくつかのクロスプラットフォーム開発ツールを検討したが、それらは一貫して期待を下回っていた:

  • RSSフィードをあらかじめ用意されたテンプレートで包むアプリ「ファクトリー」は、一般的でセンスのないアプリを生み出した。
  • JavaScriptやActionScriptをネイティブコードに変換するフレームワークでは、アプリの作成とコンパイルに複雑なツールチェーンが必要だった。
  • ウェブページをネイティブシェルでラップするフレームワークは、本番環境でデータ駆動型アプリをデプロイするためのインフラをほとんど提供していなかった。

HTML、CSS、JavaScript を使用してネイティブ モバイル アプリを作成するフレームワークである App Cloud を発見したとき、私は懐疑的でした。他のものと何か違うのだろうか?約束を果たせるのか?最初のアプリを開発した後、その答えは自信を持って「イエス!」と言えます。その理由はこうだ。

アプリクラウドは開発者の言葉を話す

App Cloud はウェブ開発者のコアスキルに依存しています:HTML でコンテンツを構造化し、CSS で形を整え、JavaScript で編集します。コンテンツ主導のリッチなアプリを作成するために新しい言語を学ぶ必要はありません。ウェブテクノロジーは常にシンプルであることに優れている。iOSでテーブル・ビューを作成する複雑さと、基本的なHTMLリストを作成する簡単さを比べてみてください!

App Cloud SDK はほぼすべての JavaScript ライブラリもサポートしており、長年のウェブ開発で習得したトリックを適用することができます。

アプリクラウドで高速レーンへ

私はコーディングの際、BBEdit と vim を頻繁に切り替えて使用しています。App Cloud では、これらの使い慣れたエディタを使い続けることができます。標準的なウェブ技術に依存しているので、Chrome Developer Tools でコードをデバッグしてテストすることもできます。XCode や Eclipse に縛られた煩雑なシステムとは異なり、App Cloud は柔軟性と自由を提供してくれます。

ワークショップアプリで迅速な反復作業

iOS および Android 用の App Cloud ワークショップ アプリは、開発中のリアルタイム テストを可能にします。コードを変更した後、"Refresh" をクリックするだけですぐに更新を確認できます。コード、更新、繰り返しという反復プロセスに慣れているウェブ開発者にとって、この機能は非常に貴重です。

多くのテストはデスクトップブラウザ上で行うことができますが、実際のデバイス上でアプリがどのように動作するかを確認することに勝るものはありません。ワークショップアプリはこれを簡単かつシームレスにします。

デバイス固有の機能の活用

App Cloud は、カメラやフォト ライブラリなど、デバイス固有の機能にアクセスするためのわかりやすい JavaScript API を提供します。たとえば、QR コードのスキャンは次のように簡単です:

bc.device.getQRCode(
function (data) { /* handle success */ },
function (error) { bc.device.alert("Oops! " + error.errorMessage); }
);

簡易アプリコンパイル

Android 開発者キットのような他のツールでアプリをコンパイルするのは、IKEA の家具を組み立てるように面倒でイライラすることがよくあります。App Cloud Studio を使えば、アプリはクラウド上で数回クリックするだけでコンパイルできます。特別なツールは必要なく、アプリは数分でダウンロードでき、さまざまなアプリストアにデプロイできます。

コンテンツの最適化:少ないことは多いことだ

コンテンツ主導のアプリケーションでは、コンテンツ自体がボトルネックになることがよくあります。App Cloud は以下の方法でパフォーマンスを最適化します:

  • 不要なデータの削除、フィードの圧縮、コンテンツのキャッシュ。例えば、私のブログのフィードは39KBから4KBに縮小された。
  • 画像をトランスコードしてファイルサイズを縮小。ある画像は、幅425ピクセルの125KBから、幅200ピクセルの8KBになり、94%の削減となった。

これらの最適化により、ユーザーのエンゲージメントに不可欠なロード時間が大幅に改善された。

配備を超えた柔軟性

他のツールとは異なり、App Cloud Studio では、アプリを再コンパイルまたは再配布する必要なく、デプロイ後にデータ、デザイン、設定を変更できます。この柔軟性により、データ フィードを交換したり設定を調整したりすることで、1 つのテンプレートから複数のアプリを作成できます。

コラボレーションを容易に

App Cloud を使用すると、同僚とアプリを簡単に共有できます。スクリーンショットをワークショップ アプリから直接共有したり、テンプレートを URL や QR コードで配布したりできるので、効率的なコラボレーションやテストが可能になります。

包括的なクラウド管理

App Cloud は、ネイティブ広告の配信からリアルタイムの分析まで、アプリケーションの管理と収益化に必要なすべてを提供してくれます。インストール、使用時間、その他の重要な指標を追跡できます。

さらに、App Cloud はパフォーマンスの向上と機能のアップデートを無料で提供します。プッシュ通知やアプリ内課金などの今後の改良により、このプラットフォームはさらに強力になります。

App Cloud はウェブ開発のシンプルさとネイティブ アプリの機能性を兼ね備えており、効率的でスケーラブル、かつ魅力的なモバイル アプリを作成したい開発者にとって不可欠なツールです。

完璧なIPAD/IPHONEビデオのためのエンコーディング設定

本格的な動画配信事業者であれば、すでにiPadとiPhoneをサポートしているか、サポートの追加を真剣に考える必要がある。一部の大手パブリッシャーにとって、iPad配信は動画視聴総数の3分の1以上に相当する。

しかし、iOS向けのエンコーディングは少し厄介だ。これらのデバイスは何世代も技術的な進歩を遂げており、iPhone 4の理想的なビデオ設定がiPhone 3GSやiPadの理想的な設定ではありません。

幸いなことに、いくつかのエンコーディング・プロファイルを使うだけで、初代iPhoneからiPad 2まで、あらゆるiOSデバイスに高品質のビデオをストリーミングすることができ、さらに将来の世代のモバイル・ハードウェアに備えることもできる。

一般設定

現在のほとんどのビデオと同様、iOSをターゲットにする場合はh.264ビデオとAACオーディオを使用する。

On the audio side, consider using HE-AAC at <64kbps, for App Store compliance. HE-AAC sounds reasonably good at these bitrates, even for complex audio.

ビデオ側では、各デバイスをターゲットに複数のプロファイルを使用します。iPhone 3GS以前はh.264のベースライン・プロファイル、レベル3.0のみをサポートしています(それよりも制約の多いバージョンをサポートしているものもあります)が、新しいデバイスはメイン・プロファイルとハイ・プロファイルをサポートしています。

最高のユーザー体験のためには、HTTPライブストリーミング(HLS)は必須です。アップルは、App Storeで10分以上のコンテンツを再生するビデオアプリにHLSを要求しており、iOSがサポートする唯一の真のストリーミングフォーマットである。HLSは、Android(バージョン3以上)、Roku、その他の様々な配信先でも採用されている。

一般的なアプローチ

決議プロフィールビットレート@ 16:9@ 4:3オーディオコメント
1024×768[email protected]2Mbps1024×5761024×76856kbps HE-AAC 
960×640[email protected]1.5Mbps960×540854×64056kbps HE-AAC 
640×432[email protected]1Mbps640×360576×43256kbps HE-AAC 
480×320[email protected]600kbps480×272426×32056kbps HE-AAC 
400×288[email protected]400kbps400×224384×28856kbps HE-AAC 
400×288[email protected]200kbps400×224384×28856kbps HE-AACフレームレートを低下させる
該当なし(オーディオのみ)    56kbps HE-AAC 

なぜ、このような提言なのか?

  • これらは単なる推奨事項だ。異なる解像度とビットレートは完全に有効であり、状況によっては実際に望ましい場合もある。例えば、非常に複雑なコンテンツは、より高いビットレートを保証するかもしれません。
  • iPad 1とiPhone 4では720pが最大で、iPad 2/iPhone 4Sでは1080pまで再生できる。しかし、ネイティブ・ディスプレイの幅は1024ピクセルしかないため、720pや1080pにすることは重要ではない。720pはフルスクリーンのウェブ再生に最適な解像度であり、1080pはコネクテッドTVに最適だ。将来のiPadは現行iPadの4倍の解像度になると噂されているので、将来を見据えて720pを追加することも検討しよう。
  • h.264プロファイルは重要だ。iPad 1とiPhone 4はどちらもMainプロファイルをサポートしている。iPad 2/iPhone 4SはHighプロファイルをサポートしており、Mainよりもわずかに優れていますが、iPad 1のデバイスの数を考えると、Mainプロファイルにこだわる方がよいでしょう。本当に最適なデバイスをターゲットにするには、MainとHighの両方にエンコードしてください。
  • これら6つの解像度とビットレートは、さまざまな帯域幅を適度にカバーしている。もっといろいろなことができるはずなので、必要に応じて解像度やプロファイルを足したり引いたりしてください。
  • レガシーiPhone/iPod Touchユーザーは、480×320の高画質ビデオ(これらのデバイスの画面解像度)を含む3つのストリームを利用できる。iPadとiPhone 4のユーザーは、6つのストリームすべてを利用できる。
  • iPadの解像度スケーラーはかなり優秀なので、リスケーリングされた動画は一般的にきれいに見える。
  • 可能な限り、これらの設定は16で割り切れる解像度の寸法を許容する。これにより、より効率的な圧縮が可能になります。特に高解像度では効率の向上は小さいが、低解像度では差が出始める。
  • 各ビデオでオーディオを同一に保つようにしてください。オーディオの仕様がバージョンによって異なる場合、ストリームを切り替えたときに再生中にポップ音やクリック音が聞こえることがあります。

その他の設定

  • 希望するターンアラウンドタイムに基づいて速度を設定します。ここでは、ベースラインより少し圧縮率が向上するものの、それなりに高速なスピード2を推奨する。
  • 各セグメントがほぼ同じサイズになるように、ピークを使用する。 bitrate\_cap ただし、目標ビットレートの150%以内でなければならない。 buffer\_size (例えば、5秒、または5倍)。 bitrate\_cap).
  • タイプを "分割" に設定すると、ブライトコーブは自動的に適切なキーフレーム配置を選択します。HLS に分割するために MP4 にエンコードする場合は、次のように設定します。 forced\_keyframe\_rate を "0.2 "または "0.1"(それぞれ5秒または10秒のキーフレーム間隔)に設定する。
  • 多少予測不可能なビットレートを受け入れることができるなら、ミックスにクオリティを加え、変更することができる。 video\_bitrate に max\_video\_bitrate でファイルサイズを最適化します。エンコーダーは必要に応じて最大ビットレートを使用し、より少ないビット数で望ましい品質を達成できる場合はより低いビットレートを使用する。
  • を設定する。 max\_frame\_rate を30に、そして max\_audio\_sample\_rate から48000まで。
  • iOSデバイスの第一世代では、h.264は1つしか使えません。 reference\_frameそのため、ベースライン・ストリームでは、互換性を最大にするためにこの機能を有効にする。

Brightcove Video Cloud と Google Analytics の統合

今回は、Googleアナリティクスを使って動画を計測できるGoogleアナリティクス連携プログラムをご紹介します。Google Analytics統合プログラムは、Video Cloudを契約しており、すでにGoogle Analyticsを導入している場合に使用できます。