我的要求是获取iphone相机,将其编码为H264格式并将其发送到服务器。 在搜索中,我发现编码部分可以使用ffmpeg lib和x264(libx264)。但现在接下来的任务是使用rtsp将编码数据发送到Wowza服务器。
如果有人意识到这一点,请分享一些代码或有用的文档。
还有另一个用于编码目的的live555库。但我不确定它是否可以使用rtsp将数据发送到服务器。
答案 0 :(得分:4)
Actualy我制作了一个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的tcp套接字:1935
您可以使用相同类型的代码进行SETUP,这将发送回您应发送数据的RTP(+ RTCP)端口
答案 1 :(得分:1)
您使用live555,您可以使用设备上的实时555服务器发送音频和视频,这将为您提供rtsp + rtcp流到wowza,用于宣布和录制直播555具有不受支持的dss模块。
答案 2 :(得分:0)
Wowza有一个名为GoCoder的iPhone应用程序,它会将一个实时编码流发送到Wowza服务器。
答案 3 :(得分:0)
您可以使用RTMP而不是RTSP直接流式传输到Wowza服务器。 ffmpeg命令类似于:
ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName
只要您将输出格式指定为flv并将输出目标指定为rtmp:// xxx,那么您应该没问题。
来源: ffmpeg streaming