VLC和Qt結合編寫流媒體rtsp播放器
阿新 • • 發佈:2019-02-19
VLC播放器是一款功能強大且小巧的播放器,它支援多種多樣的音視訊格式,比如MPEG1,2以及mp3等等。並且通過Qt和VLC的結合能讓每個開發者寫出自己的視訊流媒體播放器。
Qt與VLC結合編寫流媒體播放器主要有兩種辦法:
一. 通過VLC-Qt庫
VLC-Qt庫是基於libVlc的,後者是VLC 媒體的介面,開發者通過其可以開發出基於VLCMedia的應用。所以VLC-QT具備所以LIBVLC的功能。VLC-Qt庫的下載地址是:https://vlc-qt.tano.si/,我選擇的是Windows 64bit,當然要選擇適合自己電腦的版本。下載安裝之後,記住自己的安裝目錄,之後有用。
安裝好之後,在自己的Qt中專案.pro檔案中要新增配置檔案。具體來說,如果你的庫安裝目錄為E:\vlc-qt,那麼就應該在.pro中加入 LIBS +=E:/vlc-qt/lib -VLCQtCore -VLCQtWidgets INCLUDPATH +=E:/vlc-qt/include (注意是斜槓不是反斜槓)這樣才能把下載的庫新增進去。 之後,在ntadej大牛的GitHub上面,他已經給出了樣例程式(事實上上面那個庫也是他做的)。樣例程式比較複雜,但是其關鍵程式碼還是比較易懂的。程式碼地址: https://github.com/vlc-qt/examples。在simple player.cpp中,關鍵程式碼如下:
安裝好之後,在自己的Qt中專案.pro檔案中要新增配置檔案。具體來說,如果你的庫安裝目錄為E:\vlc-qt,那麼就應該在.pro中加入 LIBS +=E:/vlc-qt/lib -VLCQtCore -VLCQtWidgets INCLUDPATH +=E:/vlc-qt/include (注意是斜槓不是反斜槓)這樣才能把下載的庫新增進去。 之後,在ntadej大牛的GitHub上面,他已經給出了樣例程式(事實上上面那個庫也是他做的)。樣例程式比較複雜,但是其關鍵程式碼還是比較易懂的。程式碼地址:
- _instance = new VlcInstance(VlcCommon::args(), this); //建立VLC媒體示例
- _player = new VlcMediaPlayer(_instance); //建立播放器
- _player->setVideoWidget(ui->video); //把播放器關聯ui中的video控制元件上面,這樣就能在video控制元件上面播放流媒體
-
_equalizerDialog->setMediaPlayer(_player); //之後都是關聯配置,比如聲音等等
- ui->video->setMediaPlayer(_player);
- ui->volume->setMediaPlayer(_player);
- ui->volume->setVolume(50);
- ui->seek->setMediaPlayer(_player);
- _media =
- _media = new VlcMedia(url,_instance); //而這個是建立播放url的
- libvlc_m = libvlc_media_new_path (libvlc_inst, char_url);//建立一個可以播放的媒體
- libvlc_mp = libvlc_media_player_new_from_media (libvlc_m);//建立一個代表libvlc的示例
- libvlc_media_release (libvlc_m);//釋放這個可以播放的媒體
- libvlc_media_player_set_hwnd (libvlc_mp,screen_hwnd);//把libVLC的彈出視窗嵌入程式中
- int x=libvlc_media_player_play (libvlc_mp);//播放視訊