1. 程式人生 > >Qt+VLC 實現的網路串流媒體播放

Qt+VLC 實現的網路串流媒體播放

緣起
由於專案需要,監控相機需要在客戶端顯示,但是這個baslar相機BIP2-1300c-dn只支援網頁檢視,並沒有傳統工業相機一樣的c++ demo。沒辦法,還需要這個功能,就自己寫一個網路媒體播放器。
過程
工具為Qt + VLC,qt有較好的可控的互動介面,vlc之所以選擇它是因為這個相機自帶編解碼就是這個寫的,並且這個vlc也是跨平臺的。
跳過的坑
網上能夠搜尋到類似的,但是無論怎麼折騰都不工作。後來乾脆從環境配置開始一點點來。
1. qt版本為4.8.4,qt-win-opensource-4.8.4-vs2010。
qt creator 版本為qt-creator-win-opensource-2.5.2。
vlc+qt的庫來實現的,下載地址為這個

https://github.com/vlc-qt/vlc-qt/releases
具體版本為VLC-Qt 0.8.0 下面的Windows MSVC2010 Qt4。當然我本機安裝的是vs2010。
2. 安裝好後qt後,當然要重啟一下機器。就開始處理vlc+qt這個庫。解壓到一個目錄,我的具體為C:\Qt\libvlc-qt,如果按照我的,會節省很多的時間。qt並不是很好駕馭的。
3. 開啟C:\Qt\libvlc-qt\src\examples裡面的demo-player。裡面有一個demo-player.pro檔案,用qtcreator開啟。
4. 配置pro檔案。
5. 檔案目錄結構有兩個pro檔案。如圖:
目錄結構

修改src.pro這個檔案如下:

TARGET      = demo-player
TEMPLATE    = app

QT          += core gui

SOURCES     += main.cpp\
               DemoPlayer.cpp

HEADERS     += DemoPlayer.h

FORMS       += DemoPlayer.ui

LIBS      += -LC:/Qt/libvlc-qt/lib -lvlc-qt -lvlc-qt-widgets
INCLUDEPATH += C:/Qt/libvlc-qt/include

修改完,在工程上右鍵run qmake一下才會生效。

  1. 關鍵的一步在這裡
    這個qt+vlc的庫雖然很牛,但是裡面的include版本根本和例程對應不起來。雙擊開啟ui檔案。
    看這裡:
    控制元件修改
    帶vlc的那三個控制元件,是正常的widget升級過來的。升級的過程可以找其他資料。這裡是升級好的,但是需要修改這個promotion的內容。點選VlcSeekWidget右鍵,點選promoted widgets… 選單。(圖片顯示是我修改好的)。
    修改其中的內容為下圖顯示。
    控制元件升級修改具體內容
    改完後關閉即可。
  2. 把執行模式改為realease模式,debug是不工作的。
  3. Run,就可以看到希望的介面了。
    效果圖
    建議
    不建議使用qt5,這個會讓時間都浪費的莫名其妙的問題上。
    其他版本有待除錯使用。
    需要的資料,這裡有網盤連結http://pan.baidu.com/s/1o8ricZK

相關推薦

Qt+VLC 實現網路媒體播放

緣起 由於專案需要,監控相機需要在客戶端顯示,但是這個baslar相機BIP2-1300c-dn只支援網頁檢視,並沒有傳統工業相機一樣的c++ demo。沒辦法,還需要這個功能,就自己寫一個網路媒體播放器。 過程 工具為Qt + VLC,qt有較好的可控的

vlc-android 中呼叫用libvlcjni.so實現媒體播放

最近公司搞的專案中涉及到流媒體播放,並且需要硬解碼,所以想到了VLC這個開源專案。去官網下載了vlc-android原始碼進行編譯,生成的apk安裝在公司的裝置上可以執行,不錯不錯,有現成的東西當然不會再去“造輪胎”,把編譯後的android 工程匯入eclipse 看

HTTP協議下可拖動時間軸播放FLV的實現(偽媒體

prot pac -m method bytes encoding 編寫 時間軸 delay HTTP協議下實現FLV的播放其實並不復雜,當初實現的原理是使用了flowPlayer插件實現的,效果還不錯。但仍有兩大問題影響著客戶的訪問情緒: 1.預加載時頁面卡死,似乎沒有

使用vlc進行攝像頭捕獲、RTSP播放

1. 下載vlc,下載連結:http://download.videolan.org/pub/videolan/vlc/  我選擇下載的是http://download.videolan.org/pub/videolan/vlc/2.2.4/win32/  的vlc-2.2

成功實現NAS家庭伺服器(媒體播放、檔案共享及下載機)

一、家庭伺服器實現的主要功能 1、流媒體播放服務:利用DLNA實現電視、手機、電腦播放其上面的媒體檔案。 2、檔案共享:利用samba實現手機、電腦等終端與伺服器的檔案共享。 3、自動下載:利用aria2c實現自動下載。 先上幾張效果圖: 用orico的包裝盒做了個

如何看待Pensieve:MIT基於神經網路媒體位元速率自適應策略(周超)

寫在前面 今年的SIGCOMM上, MIT CSAIL的一支研究團隊,發表了一篇名為Pensieve的工作,即利用神經網路優化位元速率自適應演算法,用於提高媒體傳輸質量。文章結果表明:與一般的state-of-the-art 方法相比,Pensieve能平均提升QoE高達12%–25%。之

搭建web媒體播放(基於ffmpeg+red5的xp系統)

搭建web流媒體播放(基於ffmpeg+red5的xp系統) 專案採用HKvision攝像頭和xp系統(32位機),需要通過web頁面實現遠端監控。HKvision攝像頭是rtsp格式的視訊,無法通過HTML的video標籤播放。隨即採用ffmpeg進行格式轉換,red5作為視訊伺服器。(所有軟

MPlayer上支援RTSP媒體(live555作為媒體播放器)

    條件:在中天CK810的CPU上執行linux12.04作業系統以tft傳輸方式載入uImage; 考慮到針對性,一開始mplayer的編譯選項並不是mplayer官網上下載下來的configure,很多條件都是disable的,連結檔案和連結庫也是有自己的指定位置

媒體播放地址

MP4: http://2449.vod.myqcloud.com/2449_22ca37a6ea9011e5acaaf51d105342e3.f20.mp4 http://218.200.69.66:8302/upload/Media/20150327/43bfda1b-

使用Python的Flask框架實現視訊的媒體傳輸

Flask 是一個 Python 實現的 Web 開發微框架。這篇文章是一個講述如何用它實現傳送視訊資料流的詳細教程。我敢肯定,現在你已經知道我在O'Reilly Media上釋出了有關Flask的一本書和一些視訊資料。在這些上面,Flask框架介紹的覆蓋面是相當完整的,出於某種原因,也有一小部分的功能沒有太

實用VLC命令列(UDP到MMS,RTSP,HTTP)

1.UDP-->MMS  vlc -vvv udp://@:9001 :sout=#std{acess=mms,mux=asfh,dst=:8080} (埠隨便改) 播放 mms://192.168.251.142:8080 2.UDP-->RTSP  vlc

android 媒體 播放器 專案 原始碼

我們先看一下多媒體框架在整個Android系統所處的位置 從框架圖可以看出Media Framework處於Libraries這一層,這層的Library不是用Java實現,一般是C/C++實現,它們通過Java的JNI方式呼叫。 多媒體架構: 基於第三方PacketVideo 公司的OpenCO

nginx的媒體播放

實驗目的:讓Nginx支援flv和mp4格式檔案,同時支援Rtmp協議;同時開啟rtmp的hls功能 資料: HTTP Live Streaming(縮寫是 HLS)是一個由蘋果公司提出的基於HTTP的流媒體 網路傳輸協議。 HLS只請求基本的HTTP報文,與實時傳輸協議(

【視訊開發】Gstreamer框架中使用gst-launch進行媒體播放

Gstreamer框架中使用gst-launch進行流媒體播放 Gstreamer是一套開源的流媒體框架,用其也可以進行流媒體開發,Gstreamer是基於glib庫編寫的,需要將多個不同功能的元件(element)裝進一個箱櫃(bin)中,在進行程式編寫前,我們可以使

小玩媒體播放——HLS媒體點播系統

背景:前一段時間幫助一個朋友研究了下流媒體播放方面的知識,感覺挺好玩的。現在把淺薄的嘗試和總結分享給大家。 一.HLS流媒體點播系統概述 HTTP Live  Streaming最初是蘋果公司針對其iPhone、iPod、iTouch和iPad等移動裝置而開發的流媒體協議,

RTSP 媒體播放地址

線上流媒體播放地址,在windows上可以用VLC播放器直接開啟地址播放 浙江普通rtsp://58.248.254.8/rtpencoder/26-2-2.sdp高清rtsp://58.248.254.8/rtpencoder/26-2-1.sdp 四川衛視: rtsp

網路直播媒體協議如何選擇?RTSP,RTMP,HTTP,私有協議?

1、不管是RTSP/RTP、RTMP、HTTP,亦或是私有協議,都是可以進行流媒體傳輸的流媒體協議,而且效果都能做到差不多的程度,這裡會有同學問到HTTP流媒體協議是不是HLS,會有很大延時,巴拉巴拉,之類之類的,這裡說明一下,HLS是HTTP中的一種,可以用於對延時要求不高

用libvlc進行網路streaming

vlc具有豐富、強大的命令列引數,使用者可以方便地進行轉碼、IO重定向(檔案、網路。。。)等等,網路上相關的資料也很多,在此就不囉嗦了。這裡貼一點關於使用libvlc進行串流的經驗,和大家分享。 1. 首先,從http://download.videolan.org/pub/videolan/vlc/下載l

基於bsd socket傳輸libmad解碼,alsa驅動的mp3媒體播放

1. 前言 折騰了也有差不多一個來月,之前沒怎麼上手過linux下的C,很多東西都是想當然的狀態就開始東看看西敲敲了。這篇本章意在讓一個小白學會做一個流媒體播放器。我最開始就是個小白。 2. 準備工作 2.1 系統環境 系統環境: ubuntu 12.04 編輯器: cod

使用vlc實現視訊TS的推送

鑑於Mpeg TS流播放的需求,使用 VLC作為Server來實現輸出Mpeg TS    本文僅涉及如何使用VLC的Command來實現作為視訊流Server通常可以使用下述四種方式來推送Mpeg TS 1. UDP 2. RTP 3. RTSP 4. HTTP同時附帶在加