首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以强迫AVFoundation播放本地.ts文件吗?

可以强迫AVFoundation播放本地.ts文件吗?
EN

Stack Overflow用户
提问于 2011-04-12 22:13:38
回答 2查看 5.7K关注 0票数 11

显然,AVFoundation (和Quicktime )可以解析并播放正确编码的.ts容器,因为HTTPS下的.ts容器是实时流的。

除了设置本地web服务以服务.m3u8和相关的.ts文件之外,我真的希望能够做到这一点:说服AVURLAsset和/或URLAssetWithURL接受本地文件.m3u8 URI,就好像它是HTTP一样,或者更好的是,能够使用AVQueuePlayer加载和播放一系列.ts文件,而不需要跳过实时流圈。

我之所以想这么做,是因为我需要以一种零碎的方式在本地实时生成电影资产--所有的资产都不会立即获得,但会随着时间的推移而产生。显然,这有助于AVQueuePlayer,但是由于各种原因,我的资产片段被打包在.ts容器中。所有这些听起来都是“本地”直播的完美选择。

我怀疑URLAssetWithURL对传递给它的字符串做了一些限定,然后设置了一些属性来表示它正在查看一个实时流源,这反过来告诉AVPlayer/AVQueuePlayer期待.ts格式的曲目。它可能会看到HTTP,并决定这是实时流。

因此,我的问题是:如何“欺骗”AVFoundation来处理本地.m3u8文件,就像处理远程.m3u8文件一样?

还有一个额外的问题:是否有人(如果是的话)能够从一个AVAsset文件中生成一个.ts,以便资产返回资产的轨道状态(准备回放)?

蒂娅!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-28 16:13:20

很长一段时间以来,这个问题对我们来说也很烦人。我们最终决定编写一个工具,将ts列表转换为mp4文件。它包括使用TSDemux来解析视频/音频,然后用GPAC生成一个mp4文件。

它确实回答了你的问题,但它可能是你想做的事情的一种方式。这个工具在Github上,请随意尝试:https://github.com/Keemotion/TS2MP4

票数 9
EN

Stack Overflow用户

发布于 2017-04-06 01:34:32

实际上,您可以直接从基础ts文件创建AVURLAssets,并直接播放这些文件,非常类似于播放mov或mp4文件的方式。

每个ts文件都有一些开销,所以最好的方法是将这些文件放在一个大的ts文件中(基于m3u8的内容),然后播放这个大文件。

有几个问题:使用基于ts文件的AVCompositions构建的AVAssets需要内存,因此除了小文件之外,不要使用AVCompositions。不能在参考电影中使用基于ts文件的AVAssets。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5642248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档