【问题标题】:Can FFMPEG library send the live H264 iOS Camera stream to Wowza using RTSPFFMPEG 库可以使用 RTSP 将实时 H264 iOS 相机流发送到 Wowza
【发布时间】:2013-07-27 14:07:29
【问题描述】:

我的要求是获取 iphone 相机源,将其编码为 H264 格式并将其发送到服务器。 在搜索中,我发现使用 x264 (libx264) 的 ffmpeg lib 可以进行编码部分。但现在下一个任务是使用 rtsp 将编码数据发送到 Wowza 服务器。

如果有人知道这一点,请分享一些代码或有用的文档。

还有另一个用于编码目的的库 live555。但我不确定它是否可以使用 rtsp 将数据发送到服务器。

【问题讨论】:

    标签: ffmpeg h.264 rtsp wowza live555


    【解决方案1】:

    其实我做了一个iOS流媒体应用(wowza作为流媒体服务器)

    我相信你只能使用 rtsp 协议的 FFmpeg 流式传输视频,尽管 FFmpeg 并不完全支持它

    但是,使用 ffmpeg,您可以获得有效的 SDP 并使用 RTCP 协议将其传递给 wowza - ANNOUNCE OPTION SETUP RECORD -

    我没有使用 FFmpeg 进行编码,但如果您可以获得原始 H264 数据,您可以使用 rfc6184 将其打包以生成有效的 RTP 数据包

    编辑: 这是连接 wowza 的示例:

        NSString* response = [NSString stringWithFormat:@"ANNOUNCE %@ RTSP/1.0\r\n",self->addr];
        response = [response stringByAppendingFormat:@"CSeq: %d\r\n",self->cseq];
        response = [response stringByAppendingFormat:@"Content-Type: application/sdp\r\nContent-Length: %d\r\n\r\n", [self->sdp length] ];
        response = [response stringByAppendingString:self->sdp];
        NSString* result = [self sendAndRecvData:response];
    

    其中 sendAndRecvData 是绑定到 wowza_ip:1935 的 tcp 套接字

    您可以对 SETUP 使用相同类型的代码,它将发回您应该发送数据的 RTP (+RTCP) 端口

    【讨论】:

    • 你能多描述一下如何创建与 wowza 服务器的连接并创建数据包之类的东西。使用 FFMPEG 很难找到调用函数的函数和顺序。真的很乱。
    • 你可以在 libavformat/rtpenc.c 源码中找到一个 rtp 打包器。对于 wowza 连接部分,您可以从 /content 目录中的静态 sdp 文件开始,然后查找 RTCP 通告协议。我还是个初学者,所以我的代码很乱,我颠倒了 Wirecast 协议让它工作
    • sry 双重发帖:这里是my related wowza post on their forum
    • Hane,我在理解如何创建数据包并将数据发送到服务器时遇到了问题。我什至编译了其他各种库,例如 live555 和 cURL,但又一次停留在如何继续的初始点上。
    • 你的意思是视频rtp包吗?
    【解决方案2】:

    您使用 live555 ,您可以使用设备上的直播 555 服务器发送音频和视频,这将为您提供 rtsp+rtcp 流到 wowza,因为直播 555 具有不受支持的 dss 模块。

    【讨论】:

    • 你能否提供一些代码sn-p或者一些描述需要用于建立连接和流发布的类和函数的文档
    • Michelle,我编译了 live555,但是当我在 XCode 项目中使用它时,它开始报错。代码无法理解 c++ 类类型。你能告诉我我在 iOS 上使用 live555 时需要做的设置吗?
    • 如果你直接联系我,我可以帮助你,但是这需要更多时间,我有这一分钟,对不起
    【解决方案3】:

    Wowza 有一个名为 GoCoder 的 iPhone 应用程序,它将实时编码流发送到 Wowza 服务器。

    【讨论】:

    • 我们能否使用 http 实时流将 iphone 实时摄像头流发送到 wowza,为此我们需要在服务器端进行哪些设置。
    【解决方案4】:

    您可以使用 RTMP 而不是 RTSP 直接流式传输到 Wowza 服务器。 ffmpeg 命令类似于:

    ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName
    

    只要将输出格式指定为 flv 并将输出目标指定为 rtmp://xxx 就可以了。

    来源: ffmpeg streaming

    【讨论】:

    • 如何使用摄像头提要而不是本地文件来流式传输到 RTMP url
    猜你喜欢
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    相关资源
    最近更新 更多