2017-09-04 118 views
0

我已经编写了一个软件,可以捕获来自我的外部摄像头的RTP数据包,并能够转发它们。我创建了一个SDP文件并将其加载到VLC中,然后将RTP数据包流式传输到VLC并确认它可以正常播放。如何实现RTSP推送我的源码流推送到Wowza Cloud?

现在我想流到Wowza Cloud。似乎要做到这一点的方式是使用我配置的RTSP推送流。不幸的是,我找不到有关RTSP Push协议的文档。

我明白RTSP(拉)和如何实现,但不是RTSP推。看起来摄像头支持这一点,所以这必须是一个既定的协议,但在RTSP规范中没有提及推送。 Wowza Cloud为我提供了端点,端口,流名和认证,但我不知道如何处理它们。 SDP宣布似乎参与其中,但关于如何实施它没有明确的指导。

任何人都可以解释如何实现这个RTSP推协议?

回答

0

的RTSP推送协议流式传输至Wowza由下列RTSP的命令:

  1. OPTIONS
  2. ANNOUNCE
  3. SETUP(对于每个RTP流,即,音频和视频)
  4. RECORD
  5. TEARDOWN(流媒体完成后)

ANNOUNCE与DESCRIBE相同,只是您将SDP信息作为命令的主体。

在设置期间,服务器将响应IP和端口通过UDP发送RTP数据包(通过传输标题)。

可以使用FFMPEG和Wireshark检查过程的细节。 ffmpeg的命令如下:

ffmpeg -re -i inputfile.mp4 -pix_fmt yuv420p -vsync 1 -vcodec libx264 -r 23.976 -threads 0 -b:v: 1024k -bufsize 1024k -preset veryfast -profile:v baseline -tune film -g 48 -x264opts no-scenecut -acodec aac -b:a 192k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -rtsp_transport tcp -f rtsp rtsp://username:[email protected]:1935/live/myStream 

最后,重要的是在整个会话期间保持套接字打开,或流会话将被关闭。