当前位置:  开发笔记 > IOS > 正文

如何在iOS设备中接收从RTP URL流式传输的RTP数据包?(例如rtp://@225.0.0.0)

如何解决《如何在iOS设备中接收从RTPURL流式传输的RTP数据包?(例如rtp://@225.0.0.0)》经验,为你挑选了1个好方法。

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

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

我试过以下链接.

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

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

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

如果有人能给我们一个指导或任何想法,我们如何能够实现这些事情,那么我们将不胜感激.



1> manishg..:

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

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

    使用数据源:如果是音频,则可以是麦克风或音频样本或文件

    使用音频编解码器(如AAC或Opus)对音频进行编码.

    使用RTP打包器从编码的音频帧创建RTP数据包

    使用UDP等传输层发送这些数据包

诸如RTSP之类的协议提供必要的信令信息以提供更好的流信息.通常RTP本身是不够的,因为在RTCP的帮助下处理拥塞控制,反馈,动态比特率等事情.

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

    使用RTP解包器从中获取编码的音频帧.您可以自己编写或使用第三方实现.事实上,ffmpeg是一个大框架,它拥有大多数编解码器和协议的所有必需代码.但是对于您的情况,找一个简单的RTP解包器.可能存在与特定编解码器对应的标头,以确保您引用正确的RFC.

    一旦您可以访问编码的帧,您就可以在媒体容器(如m4a或ogg)中编写相同的内容,具体取决于流中使用的音频编解码器.

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

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

    一旦您可以访问编码的帧,使用音频解码器(可用作库)来解码帧或检查您的平台是否支持该编解码器直接播放

    一旦您可以访问已解码的帧,在iOS中,您可以使用AVFoundation播放相同的内容.

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

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有