0

HTTPライブストリーミングの動作を示すためのサンプルアプリケーションを1つ作成しました。
私が行ったことは、入力をビデオファイル(avi、mpeg、mov、.ts)として受け取り、特定のビデオファイルのセグメント(.ts)およびプレイリスト(.m3u8)ファイルを生成するライブラリが1つあることです。ライブラリからプレイリストデータを取得するときのように、リンクリストにプレイリストを(文字列として)保存しています。

ユーザーが要求したセグメントファイルとプレイリストファイルをサーバーする基本的なWebサーバーを1つ作成しました。iPhoneのサファリブラウザからplaylist.m3u8ファイルをリクエストしていますが、QuickTimeプレーヤーが起動し、受信したプレイリストファイルにリストされているsegment.tsファイルをリクエストしています。(現在のプレイリストにリストされている)すべてのセグメントを再生した後、プレイリストを再度要求します。ここで、リストされている次のsegment.tsファイルのセットを含む次のプレイリストファイルで応答しています。

これは私たちがHTTPライブストリーミングと呼んでいるものですか?
HTTPライブストリーミングを実装するためにこれを行う必要がある以外に何かありますか?

ありがとう。

4

3 に答える 3

0

それほど多くはありません。メディアの入力ストリームを取得し、それらをエンコードし、配信に適した形式にカプセル化し、カプセル化されたメディアを配布用に準備して、HTTP サーバーから要求できるように配置する場合は、これで完了です。ライブ ストリーミングの背後にある考え方は、適度なサイズのリソースに対する HTTP 要求を処理するために既に最適化されている既存のインターネット アーキテクチャを活用するというものです。

HTTP ストリーミングは、カスタム ストリーミング プロトコル、カスタム ルーティング、およびカスタム コンテンツ キャッシングにより、多くの既存の CDN ソリューションを時代遅れにします。

于 2011-09-22T16:58:16.847 に答える
0

多かれ少なかれ、サーバーから iOS デバイスにファイルをプッシュする場合は、適応ビットレート ストリーミングも必要です。つまり、スコープは、すべての TS ファイルを追跡する単一の「index.m3u8」ファイルから、アプリケーションでサポートする各ビットレートのインデックス ファイルを追跡するマスター インデックスにまで拡大し、TS ファイルを個別に追跡します。それぞれのビットレートでエンコードされます。

かなりの量の作業ですが、基本的なコツをつかめば、ほとんどが日常的/反復的です。

ストリーミングの詳細については、iOS の観点からのバイブルは常に TN2224である必要があります。Technote の仕様に厳密に従っていることが、ストリーミングと比較して App Store の承認プロセスを通過する最大のチャンスです。

気にしない人もいます (過去 2 か月間でストリーミング アプリを構築し、ルールを順守していないように見える多数のビデオ アプリの HTTP ログを調べました) - Apple が気付く場合もあれば、そうでない場合もあります。場合によっては、プレーヤーが大きすぎて Apple が干渉できないこともあります。

したがって、Apple の精査を受けるアプリの機能の他のすべての側面とそれほど違いはありません。正しい軌道に乗っていることを確認できる方法があるというだけです。

そしてもちろん、純粋に技術的な観点から、@psp1 が述べたように、mediastreamvalidator ツールは、ストリームが全体的な機能の観点からではなくても、そのコアで、HLS 実装に期待されるものと互換性があるかどうかを判断するのに役立ちます。

注:独自のエンコーディング ソリューションを使用することもできます (ffmpeg を使用すると、より多くの制御が可能になるという利点と、設定に時間がかかり、正しく機能するという欠点があります。さらに、最小限のスケールでも話し始めると、他の多くの問題に遭遇します. 技術的な困難な作業がすべて終わったら, それは簡単であることに気付くでしょう. 次に、空想を楽しむためにどのライセンスを取得する必要があるかを実際に把握する必要があります. H.264 エンコーダーを使用し、すべての法的な/手続き上のフープを飛び越えて 1 つを取得します)。

サッカー場を埋めることができる法務/会計チームを持たない開発者にとってより簡単なソリューションは、IMO です。Encoding.com、Zencoder などのエンコーディング サービスをアラカルトまたは月額。プラスは、彼らがすべてのライセンスBSを処理し、単純な「有料」サービスを提供しているだけであることです。これは、クライアント向けのプロジェクトを構築するときにも非常に役立ちます. マイナス面は、Zencoder/Encoding に依存していることです。逆に、サーバーがダウンしているためにエンコード ジョブが丸 1 日失敗した場合や、API が正常に機能しない場合に、期待どおりに動作するか、文書化されています!

とにかく、HLS サーバーを本番環境にプッシュする前に、Grok に到達したすべての要素についてです!

于 2012-04-08T01:10:11.440 に答える
0

HTTP Web サーバーによって生成されたストリームを検証するために、mac os x 用のメディア ストリーム バリデータ コマンド ライン アプリケーションを使用することもできます。

于 2011-09-27T04:54:38.623 に答える