2015-05-04 191 views
0

我應該使用VLC庫編寫RTSP客戶端C編程,我對此有些疑問:RTSP客戶端

  1. 我沒有發現任何在VLC庫已經函數來發送RTSP SETUP 請求,我應該從頭開始寫嗎?
  2. 當我發送RTSP SETUP請求,我必須打開2個插槽用於RTP 和RTCP到它的端口號發送到LIVE555媒體服務器通過這些端口接收 的數據,你需要打開另一個插座 UDP協議接收RTSP SETUP/PLAY/PAUSE/STOP請求對 控制傳輸數據過程的響應?
  3. 當我想要暫停應用程序 層上的傳輸數據過程時,我應該向服務器發送RTSP暫停請求,並向播放機發送暫停請求給暫停傳輸數據過程的暫停,但我不知道VLC中有哪些功能圖書館用於這個 的目的,你能告訴我這些功能是什麼?

謝謝。

+1

VLC沒有實現RTSP本身。它爲此部署了liblive555和各自的live555訪問模塊。基於libvlc的RTSP客戶端應用程序是絕對可行的,應該不需要任何修改即可使用。 – feepk

回答

0

正如評論中的feepk所述,您不需要手動執行任何RTSP設置,因爲VLC可以爲您使用live555庫進行此操作。您可以使用libvlc_media_new_location函數打開RTSP連接,然後傳遞給您的媒體播放器實例。

例如:

// You must create an instance of the VLC Library 
libvlc_instance_t * vlc; 
// You need a player to play media 
libvlc_media_player_t *mediaPlayer; 
// Media object to play. 
libvlc_media_t *media; 

// Configure options for this instance of VLC (global settings). 
// See VLC command line documentation for options. 
std::vector<const char*> options; 
std::vector<const char*>::iterator option; 
// Load the VLC engine 
vlc = libvlc_new (int(options.size()), options.data()); 

// Create a media item from URL 
media = libvlc_media_new_location (vlc, "RTSP_URL_HERE"); 
mediaPlayer = libvlc_media_player_new_from_media (media);