gpt4 book ai didi

ios - 使用 AVFoundation 在 iOS 上播放套接字流式 h.264 电影

转载 作者:技术小花猫 更新时间:2023-10-29 10:40:22 26 4
gpt4 key购买 nike

我正在开发一个小型 iPhone 应用程序,它使用常规套接字通过网络连接流式传输电影内容。视频采用 H.264 格式。然而,我在播放/解码数据时遇到困难。我一直在考虑使用 FFMPEG,但许可使它不适合该项目。我一直在研究 Apple 的 AVFoundation 框架(尤其是 AVPlayer),它似乎能够处理 h264 内容,但我只能找到启动方法使用 url 的电影——而不是通过证明从网络流式传输的内存缓冲区。

无论如何,我一直在使用以下方法进行一些测试以实现这一点:

  1. 使用常规 AVPlayer 播放电影。每次在网络上接收到数据时,都会使用带有追加模式的 fopen 将其写入文件。然后使用更新的数据重新加载/重新创建 AVPlayer 的 Assets 。这种方法似乎有两个问题:首先,在卸载第一个 Assets 并加载新 Assets 时,屏幕会短暂变黑。其次,我不知道播放停止的确切位置,所以我不确定如何找到开始播放新 Assets 的正确位置。
  2. 第二种方法是像第一种方法一样将数据写入文件,但不同之处在于数据被加载到第二个 Assets 中。然后在播放器中插入/排队第二个 Assets 的地方使用 AVQueuedPlayer,然后在缓冲完成后调用。然后可以在没有黑屏的情况下卸载第一个 Assets 。然而,使用这种方法(比第一种方法)更麻烦的是找出从哪里开始播放新 Assets 。

有没有人做过这样的事情并成功了?是否有使用 AVFoundation 执行此操作的正确方法?

最佳答案

执行此操作的官方方法是 HTTP 实时流格式,它支持多种质量级别(除其他外)并在它们之间自动切换(例如:如果用户从 WiFi 移动到蜂窝)。

您可以在此处找到文档:Apple Http Streaming Docs

关于ios - 使用 AVFoundation 在 iOS 上播放套接字流式 h.264 电影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9804694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com