場景
開源RTMP組件EasyPusher-Android+EasyDarwin實現APP推流給RTSP流媒體服務器:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/123349283
上面介紹了RTSP相關的開源組件,如果要在Windows中實現對RTSP視頻流的播放,
可以使用開源組件EasyPlayer-RTSP-Win
https://github.com/tsingsee/EasyPlayer-RTSP-Win
EasyPlayer RTSP Windows 播放器是由TSINGSEE青犀開放平台開發和維護的一個完善的RTSP流媒體播放器項目,
視頻編碼支持H.264,H.265,MPEG4,MJPEG,音頻支持G711A,G711U,G726,AAC,支持RTSP over TCP/UDP協議,
支持軟/硬解碼,是一套極佳的安防流媒體平台播放組件!EasyPlayer Windows版本經過了很多年的發展和迭代,
在很多商業項目中使用,已經非常穩定、完整,功能包括:直播、錄像、抓圖,
應該說是目前市面上功能性、穩定性和完整性最強的一款RTSP播放器!
國內大部分的RTSP/RTP協議的播放器都是基於ffmpeg做的(包括協議層和解碼層),
但是在實際的RTSP/RTP項目實戰過程中,由於各個廠家的自定義字段的不同,由諸多需要特殊兼容的地方,
而這正是ffmpeg類播放器無法做到的,EasyPlayer依托於龐大的EasyDarwin用戶群體,
已經將國內幾乎所有的攝像機廠家都適配了一遍,非常兼容,非常穩定!
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
1、將代碼克隆到本地並使用VS打開
修改Form1的窗體與樣式,去掉不需要的功能,這里只需要簡單的實現rtsp視頻流的播放,所以將其他解碼方式等選擇刪除掉,
並且將右鍵菜單中截圖和錄像等功能也刪除掉。
2、將頁面加載之后的代碼修改,默認解碼方式設置為TCP,其他運行報錯代碼注釋掉
private void PlayerForm_Load(object sender, System.EventArgs e) { //獲取進程名 string str = this.GetType().Assembly.Location; this.Text = str; int LimitDayOut = PlayerSdk.EasyPlayer_Init(); if (LimitDayOut >= 0) isInit = true; callBack = new PlayerSdk.MediaSourceCallBack(MediaCallback); isTCP = true; this.RightToLeft = RightToLeft.Inherit; }
3、重新生成解決方案
4、實現與上面博客聯動的播放效果
5、實現播放海康威視攝像頭效果
海康威視攝像頭rtsp地址可以參考如下
Nginx搭建RTMP服務器+FFmpeg實現海康威視攝像頭預覽:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/121202130