gpt4 book ai didi

ios - 捕获、编码然后将视频从 iPhone 流式传输到服务器

转载 作者:可可西里 更新时间:2023-11-01 03:55:00 26 4
gpt4 key购买 nike

我有构建 iOS 应用程序的经验,但没有视频方面的经验。我想构建一个将实时视频流式传输到服务器的 iPhone 应用程序。一旦进入服务器,我就会将该视频实时传送给消费者。

我已经阅读了相当多的 Material 。有人可以让我知道以下内容是否正确并为我填写空白。

  1. 要在 iPhone 上录制视频,我应该使用 AVFoundation 类。当使用 AVCaptureSession 委托(delegate)方法 captureOutput:didOutputSampleBuffer::fromConnection 时,我可以访问每一帧视频。现在我有了视频帧,我需要对帧进行编码
    • 我知道基础类仅通过 AVAssetWriter 提供 H264 编码,而不是通过轻松支持流式传输到 Web 服务器的类。因此,我只剩下将视频写入文件。
    • 我读过其他帖子说他们可以使用两个 AssetWritter 写入 10 秒的 block ,然后将这 10 秒的 block NSStream 写入服务器。有人可以解释如何编码使用两个 AVAssetWriters 一起工作来实现这一点。如果有人有代码,请分享。

最佳答案

您是正确的,在 iPhone 上使用硬件编码器的唯一方法是使用 AVAssetWriter 类将编码视频写入文件。不幸的是,在文件关闭之前,AVAssetWriter 不会将 moov 原子写入文件(这是解码编码视频所必需的)。

因此,将编码视频流式传输到服务器的一种方法是将 10 秒的视频 block 写入一个文件,关闭它,然后将该文件发送到服务器。我读到过这种方法可以在播放时不会因文件的关闭和打开而出现间隙,尽管我自己没有尝试过。

我找到了另一种流式传输视频的方法 here .

这个例子打开了 2 个 AVAssetWriters。然后在第一帧它写入两个文件但立即关闭其中一个文件以便写入 moov 原子。然后使用 moov 原子数据,第二个文件可以用作获取编码视频数据流的管道。此示例仅适用于发送视频数据,但它是非常干净且易于理解的代码,帮助我弄清楚如何处理 iPhone 上的视频的许多问题。

关于ios - 捕获、编码然后将视频从 iPhone 流式传输到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14178412/

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