首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AVAssetReader读取HLS .ts段

使用AVAssetReader读取HLS .ts段
EN

Stack Overflow用户
提问于 2014-11-02 12:16:00
回答 1查看 909关注 0票数 2

为了从HLS中提取原始CMSampleBufferRef (用于重新编码视频),我尝试使用AVAssetReader读取HLS流(.m3u8文件)。由于AVAssetReader不支持直接从网络流中读取数据,因此我尝试先将HLS m3u8索引文件中列出的.ts文件下载到本地驱动器,然后使用AVAssetReader重新读取。但是,当我尝试使用AVAssetReader打开.ts文件时,收到错误消息“不支持此媒体格式”(错误Domain=AVFoundationErrorDomain代码=-11828“无法打开”UserInfo=0x7fd3aa723570 {不支持NSLocalizedFailureReason=This媒体格式)。

谁知道AVAssetReader是否支持从本地驱动器读取.ts (mpeg2传输流)?如果没有,有没有其他方法可以从HLS流中创建/提取CMSampleBufferRef?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-05-13 08:11:56

据我所知,情况并非如此。然而,手动从TS中提取音频和视频流似乎相当简单。来自WWDC2014的WWDC session 513在VideoToolkit上有一个很棒的会议,而且碰巧也在高层次上讨论了复用/解复用TS。也许我遗漏了一些东西,但是看起来你只需要把前两个数据块提取出来,然后从它们中创建一个CMVideoFormatDescriptionRef,然后把后面的NAL单元的起始代码改成一个长度头,然后把它们直接输入到VTDecompressionSession中。This answer详细介绍了这些步骤。

或者,这里是a CocoaPod that remuxes TS2 into MP4

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

https://stackoverflow.com/questions/26695998

复制
相关文章

相似问题

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