AVAssetReader很棒,但是我只能看到如何将其与本地资产,文件或我想的组合一起使用
所以
assetReader = try AVAssetReader(asset: self.asset)
...
assetReader.addOutput(readerOutput)
以此类推,
说您的视频流到了
(也许是苹果公司的.M3U8文件示例,
https://developer.apple.com/streaming/examples/)
实际上,AVASsetReader可以用于流吗?还是只有本地文件?
我只是无法在任何地方找到解释。 (也许很明显,如果您更熟悉它。:/)
答案 0 :(得分:2)
这不是很明显。将AVAssetReader
和AVComposition
的标头文件注释拼凑在一起,给人的印象是只为本地资产设计的API,尽管该语言并未明确排除非本地资产。
来自AVAssetReader
头文件:
AVAssetReader的实例从AVAsset的实例读取媒体数据,无论资产是基于文件的还是代表来自多个源的媒体数据的集合,例如AVComposition。
并且来自AVComposition
:
AVComposition以自定义的时间安排组合来自多个基于本地文件的源的媒体数据,以便一起呈现或处理来自多个源的媒体数据。不论容器类型如何,所有基于本地文件的视听资产都可以合并。
如果您只对视频感兴趣,并且不介意在播放过程中进行处理,则可以通过向AVPlayerItemVideoOutput
添加AVPlayerItem
来捕获远程资产中的帧。如果您对音频感兴趣,那您就小溪了。