5

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

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

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

4

4 回答 4

4

实际上,我制作了一个 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) 端口

于 2013-07-30T09:32:36.687 回答
1

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

于 2013-08-02T16:57:25.283 回答
0

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

于 2013-07-28T01:40:43.850 回答
0

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

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

只要您将输出格式指定为 flv 并将输出目标指定为 rtmp://xxx ,那么您应该没问题。

来源: ffmpeg 流媒体

于 2013-08-02T03:03:23.823 回答