如何实现我的源流的RTSP Push推送到Wowza Cloud?

时间:2017-09-04 17:10:44

标签: rtsp rtp wowza

我编写的软件可以从外部摄像头捕获RTP数据包并能够将其转发。我创建了一个SDP文件并将其加载到VLC中,然后将RTP数据包流式传输到VLC并确认它正常播放。

现在我想流式传输到Wowza Cloud。看起来这样做的方法是使用我配置的RTSP Push流。不幸的是,我无法找到有关RTSP Push协议的文档。

我理解RTSP(Pull)以及如何实现它,而不是RTSP Push。看起来相机支持这一点,所以这必须是一个既定的协议,但RTSP规范中的任何地方都没有提到推送。 Wowza Cloud为我提供了端点,端口,流名称和身份验证,但我不知道如何处理它们。似乎涉及SDP宣布,但没有关于如何实施它的明确指南。

任何人都可以解释如何实施此RTSP推送协议吗?

1 个答案:

答案 0 :(得分:0)

流式传输到Wowza的RTSP推送协议包含以下RTSP命令:

  1. OPTIONS
  2. ANNOUNCE
  3. SETUP(对于每个RTP流,即音频和视频)
  4. RECORD
  5. TEARDOWN(流式传输完成后)
  6. ANNOUNCE与DESCRIBE相同,只是您将SDP信息作为命令的主体推送。

    在SETUP期间,服务器将使用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:password@192.168.1.2:1935/live/myStream
    

    最后,在整个会话期间保持Socket打开至关重要,否则流媒体会话将被关闭。