Ios 使用AVFoundation消费web套接字视频流的方法?

Ios 使用AVFoundation消费web套接字视频流的方法?,ios,websocket,video-streaming,avfoundation,Ios,Websocket,Video Streaming,Avfoundation,我有一个通过WebSocket发送视频流的资源(我无法控制传输方法)。我能够使用从套接字读取数据,没有任何问题,但是AVPlayer及其同类需要NSURL,而不是NSData字节流 以下是我尝试过的几种解决方案: 自定义NSURLProtocol将字节从套接字路由到NSURLProtocolClient结果是AVPlayer和mpmovieplayervewcontroller不使用nsurconnection 尝试将字节写入磁盘并附加它们,但结果不佳 用于代理流。这里的API(除非我遗漏了什么

我有一个通过WebSocket发送视频流的资源(我无法控制传输方法)。我能够使用从套接字读取数据,没有任何问题,但是
AVPlayer
及其同类需要
NSURL
,而不是
NSData
字节流

以下是我尝试过的几种解决方案:

  • 自定义
    NSURLProtocol
    将字节从套接字路由到
    NSURLProtocolClient
    结果是
    AVPlayer
    mpmovieplayervewcontroller
    不使用
    nsurconnection

  • 尝试将字节写入磁盘并附加它们,但结果不佳

  • 用于代理流。这里的API(除非我遗漏了什么)不利于向响应写入任意数量的数据


  • 我怎样才能欺骗AVPlayer播放我的视频流?

    你应该看看。这允许您使用像
    myapp://path/that/means/something/to/myapp
    如果您设置了
    [[AVAsset resourceLoader]setDelegate:MyBJ队列:myQueue]
    然后媒体播放管道会要求您提供一些数据,它只要求您使用一些NSData进行响应-请参阅。

    您需要将(大概)H.264/AAC数据写入MP4文件,或者使用HTTP服务器并为AVPlayer或MPMoviePlayer提供HLS流以进行播放。