gpt4 book ai didi

ios - 如何接收从 iOS 设备中的 RTP URL 流式传输的 RTP 数据包? (例如 rtp ://@225. 0.0.0)

转载 作者:IT王子 更新时间:2023-10-29 05:50:49 27 4
gpt4 key购买 nike

我正在尝试从 RTP URL 流式传输 RTP 数据包(正在流式传输音频),例如rtp://@225.0.0.0经过如此多的研究后,我在我的设备中流式传输了 URL 并使用 https://github.com/maknapp/vlckitSwiftSample 播放它.这只是播放流数据,没有任何存储数据的功能。

我从研究和其他来源中找到了很多内容和简单的信息,它们应该有助于通过 RTP 流式传输数据包并将其存储在 iOS 设备中。

我试过以下链接。

  1. https://github.com/kewlbear/FFmpeg-iOS-build-script

  2. https://github.com/chrisballinger/FFmpeg-iOS

这两个甚至没有编译,因为 POD 问题其他项目或指南只是给我引用 RTSP 流而不是 RTP 流。

如果有人可以给我们提供指导或任何关于我们如何实现此类事情的想法,我们将不胜感激。

最佳答案

首先,您需要了解其工作原理。

发件人,即 RTP 流的创建者可能正在执行以下操作:

  1. 使用数据源:如果是音频,这可以是麦克风或音频样本或文件
  2. 使用 AAC 或 Opus 等音频编解码器对音频进行编码。
  3. 使用 RTP 分包器从编码的音频帧创建 RTP 数据包
  4. 使用 UDP 等传输层发送这些数据包

RTSP 等协议(protocol)提供了必要的信令信息,以提供更好的流信息。通常 RTP 本身是不够的,因为拥塞控制、反馈、动态比特率等事情都是在 RTCP 的帮助下处理的。

无论如何,为了存储传入的流,您需要执行以下操作:

  1. 使用 RTP 解包器从中提取编码的音频帧。您可以编写自己的或使用第三方实现。事实上,ffmpeg 是一个大型框架,它具有大多数编解码器和协议(protocol)所需的所有代码。但是,对于您的情况,请找到一个简单的 RTP 解包器。可能有与特定编解码器相对应的 header ,以确保您引用了正确的 RFC。

  2. 获得编码帧的访问权限后,您可以根据流中使用的音频编解码器将其写入媒体容器(例如 m4a 或 ogg)中。

为了播放流,您需要执行以下操作:

  1. 使用 RTP 解包器从中提取编码的音频帧。您可以编写自己的或使用第三方实现。事实上,ffmpeg 是一个大型框架,它具有大多数编解码器和协议(protocol)所需的所有代码。但是,对于您的情况,请找到一个简单的 RTP 解包器。

  2. 获得编码帧后,使用音频解码器(作为库提供)解码帧或检查您的平台是否支持该编解码器直接播放

  3. 一旦您有权访问解码帧,在 iOS 中,您可以使用 AVFoundation 播放相同的帧。

如果您正在寻找一种简单的方法,可以使用第三方实现,例如 http://audiokit.io/

关于ios - 如何接收从 iOS 设备中的 RTP URL 流式传输的 RTP 数据包? (例如 rtp ://@225. 0.0.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41738644/

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