1

我试图了解HTTP Live Streaming将静态视频文件传输到 iOS 设备的“分块”方面。视频文件的分块发生在哪里?

编辑:从阅读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 是您 manifestFile 的 url ...请注意,我正在添加:

/清单(格式=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 回答