2017-09-04 116 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 

最後,重要的是在整個會話期間保持套接字打開,或流會話將被關閉。