1

iOSデバイスへの静的ビデオファイルのHTTPライブストリーミングの「チャンク」の側面を理解しようとしています。ビデオファイルのチャンクはどこで発生しますか?

編集HTTP LIve Streamingともう少しhttps://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-07を読むと、ビデオファイルが.tsセグメントに分割されているように聞こえますサーバー。または、m3u8プレイリストでファイルへのバイトオフセットを指定できます(明らかにを使用してEXT-X-BYTERANGE)。

AppleのHLSの説明https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-07を読んだ後、このプロセスについて私が理解したことは次のとおりです。

  • 静的ファイルは私のサーバー上にあります。適切なオーディオ/ビデオエンコーディング(H.264およびAAC)があります。
  • m3u8アプリのメディアプレーヤー(MPMoviePlayerまたは同様のもの)にプレイリストを渡します。
  • アプリは、メディアの再生中に「インデックスをリロード」します。言い換えれば、アプリは再生する追加のセグメントを要求します。
  • 各10秒のセグメントはMPEGトランスポートストリームコンテナにあります。

このプロセスについての私の理解は不完全です(そしておそらく正しくありません)。追加情報は大歓迎です。

4

1 に答える 1

2

何を求めてるの?情報???-アプリはインデックスをリロードしていませんが、再生しています...正しいエンコードされたファイルを切り替えるM3U8ファイルを使用しています。そうすれば、たとえば、mediaPlayerと「マニフェストファイル」を接続するだけで済みます...

NSURL    *fileURL    =   [NSURL URLWithString:@"http://techxvweb.fr/html5/AppleOutput/2012-03-10-j23-dax-smr-mt1-m3u8-aapl.ism/manifest(format=m3u8-aapl)"];
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
/* Inset the movie frame in the parent view frame. */
CGRect viewInsetRect = CGRectInset ([self.view bounds],0.0, 0.0 );
[[moviePlayerController view] setFrame: viewInsetRect ];
[self.view addSubview:moviePlayerController.view];
[moviePlayerController play];

ここで、NSUrlはマニフェストファイルへのURLです...追加していることに注意してください。

/manifest(format=m3u8-aapl)

元のマニフェストファイルに対して、「ISM」ファイルを正しいM3U8構文に解析するもの

   NSURL    *fileURL    =   [NSURL URLWithString:@"http://techxvweb.fr/html5/AppleOutput/2012-03-10-j23-dax-smr-mt1-m3u8-aapl.ism/manifest(format=m3u8-aapl)"]; 
于 2012-04-16T15:30:31.257 に答える