AVAssetReader,如何与流而不是文件一起使用?

时间:2018-12-15 19:08:59

标签: ios swift avfoundation avassetreader

AVAssetReader很棒,但是我只能看到如何将其与本地资产,文件或我想的组合一起使用

所以

assetReader = try AVAssetReader(asset: self.asset)
...
assetReader.addOutput(readerOutput)

以此类推,

说您的视频流到了

(也许是苹果公司的.M3U8文件示例,

enter image description here

https://developer.apple.com/streaming/examples/

实际上,AVASsetReader可以用于流吗?还是只有本地文件?

我只是无法在任何地方找到解释。 (也许很明显,如果您更熟悉它。:/)

1 个答案:

答案 0 :(得分:2)

这不是很明显。将AVAssetReaderAVComposition的标头文件注释拼凑在一起,给人的印象是只为本地资产设计的API,尽管该语言并未明确排除非本地资产。

来自AVAssetReader头文件:

  

AVAssetReader的实例从AVAsset的实例读取媒体数据,无论资产是基于文件的还是代表来自多个源的媒体数据的集合,例如AVComposition。

并且来自AVComposition

  

AVComposition以自定义的时间安排组合来自多个基于本地文件的源的媒体数据,以便一起呈现或处理来自多个源的媒体数据。不论容器类型如何,所有基于本地文件的视听资产都可以合并。

如果您只对视频感兴趣,并且不介意在播放过程中进行处理,则可以通过向AVPlayerItemVideoOutput添加AVPlayerItem来捕获远程资产中的帧。如果您对音频感兴趣,那您就小溪了。