这个比较棘手......
我正在尝试在 iOS 上通过网络流式传输视频 (H264)。但是,我通过远程服务器的开放套接字(使用 CocoaAsyncSocket)将视频数据放入缓冲区,因此我没有可用于创建 AVAsset 或 MPMoviePlayer 的视频 URL。该视频是实时流,因此如果有任何不同,数据将不断出现(即没有设置持续时间)。
我必须这样做,因为服务器是 RTSP 服务器。我已经编写了自己的 RTSP 客户端来发送命令和接收响应,现在我正在尝试对来自连接的视频数据做一些有用的事情。
关于如何播放此视频有什么想法吗?我目前唯一能想到的就是以某种方式保存到文件并加载它(但我不知道它是如何工作的,因为我将不断加载新数据),或者诉诸于以某种方式手动进行操作像 ffmpeg。不,不幸的是我不能让服务器改为执行 HTTP 实时流式传输。
如有任何帮助,我们将不胜感激!
最佳答案
我还没有深入研究 AVFoundation,但您可以通过使用 AVAssetWriter
创建一个 AVAsset
来完成它。您向 AVAssetWriter
提供一个 AVAssetWriterInput
实例,它获取 CMSampleBuffer
数据并将其打包用于 AVAssetWriter
。
基于docs对于 AVAssetWriterInput
,它旨在从“实时源”获取数据。
我希望我能提供更多帮助,但希望这能为您指明正确的方向。
关于iphone - 如何在 iOS 上播放从套接字手动加载的视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4652632/