一、功能特點
1.1 文件推流
- 指定網(wǎng)卡和監(jiān)聽端口,接收網(wǎng)絡(luò)請求推送音視頻等各種文件。
- 實時統(tǒng)計顯示每個文件對應(yīng)的訪問數(shù)量、總訪問數(shù)量、不同IP地址訪問數(shù)量。
- 可指定多種模式,0-直接播放、1-下載播放。
- 實時打印顯示各種收發(fā)請求和應(yīng)答數(shù)據(jù)。
- 每個文件對應(yīng)MD5加密的唯一標識符,用于請求地址后綴區(qū)分訪問哪個文件。
- 支持各種瀏覽器(谷歌chromium/微軟edge/火狐firefox等)、各種播放器(vlc/mpv/ffplay/potplayer/mpchc等)打開請求。
- 播放過程中可以任意切換播放進度,支持倍速播放。
- 需要推流的文件名稱歷史記錄自動存儲和打開加載應(yīng)用。
- 切換文件獲取訪問地址,自動拷貝地址到剪切板方便直接粘貼測試使用。
- 極低CPU占用,128路1080P同時推流不到1%CPU占用,異步發(fā)送數(shù)據(jù)機制。
- 純QTcpSocket通信,不依賴流媒體服務(wù)程序,核心源碼不到500行,注釋詳細,功能完整。
- 支持Qt4/Qt5/Qt6任意版本,支持任意系統(tǒng)(windows/linux/macos/android/嵌入式linux等)。
1.2 網(wǎng)絡(luò)推流
- 支持各種本地視頻文件和網(wǎng)絡(luò)視頻文件。
- 支持各種網(wǎng)絡(luò)視頻流,網(wǎng)絡(luò)攝像頭,協(xié)議包括rtsp、rtmp、http。
- 支持將本地攝像頭設(shè)備推流,可指定分辨率和幀率等。
- 支持將本地桌面推流,可指定屏幕區(qū)域和幀率等。
- 自動啟動流媒體服務(wù)程序,默認mediamtx(原rtsp-simple-server),可選用srs、EasyDarwin、LiveQing、ZLMediaKit等。
- 可實時切換預(yù)覽視頻文件。
- 推流的清晰度和質(zhì)量可調(diào)。
- 可動態(tài)添加文件、目錄、地址。
- 視頻文件自動循環(huán)推流,如果視頻源是視頻流,在掉線后會自動重連。
- 網(wǎng)絡(luò)視頻流自動重連,重連成功自動繼續(xù)推流。
- 網(wǎng)絡(luò)視頻流實時性極高,延遲極低,延遲時間大概在100ms左右。
- 推流后除了用rtmp地址訪問以外,還支持直接hls/webrtc訪問,可以直接瀏覽器打開看實時畫面。
- 支持Qt4/Qt5/Qt6任意版本,支持任意系統(tǒng)(windows/linux/macos/android/嵌入式linux等)。
二、使用步驟
2.1 文件推流
- 選擇或者填寫要監(jiān)聽的網(wǎng)卡IP地址,填寫好監(jiān)聽端口,建議默認即可。
- 單擊添加文件或者目錄,選擇要加入推流的音視頻文件,添加成功以后會自動羅列在表格中。
- 單擊啟動服務(wù)按鈕,會變成停止服務(wù)字樣表示啟動服務(wù)成功。
- 從表格中選中一行,會自動將該音視頻文件的播放地址填寫到右下角,同時也會自動拷貝到剪切板。
- 將地址粘貼到瀏覽器地址欄回車即可查看播放音視頻,可以任意切換播放進度。
- 將地址用vlc或者其他播放器打開即可查看播放音視頻,可以任意切換播放進度。
- 文件推流服務(wù)支持多個同時請求,表格中會顯示每個文件對應(yīng)正在請求中的數(shù)量,右下角也有統(tǒng)計總請求數(shù)量,還有統(tǒng)計不同IP地址的請求總數(shù)。
- 單擊停止服務(wù)按鈕會停止所有服務(wù),由于存在緩存的關(guān)系,停止以后緩存中的視頻還可以繼續(xù)播放,過一段時間就不能播放。
- 在啟動服務(wù)后支持動態(tài)添加文件、移除文件、清空文件。
2.2 網(wǎng)絡(luò)推流
- 選擇或者填寫推流的前綴地址,建議默認即可。
- 單擊添加文件或者目錄,選擇要加入推流的音視頻文件,添加成功以后會自動羅列在表格中。
- 單擊添加地址,可以從下拉框中選擇或者填寫,下拉選項中是一些格式模板,比如本地攝像頭、本地桌面、電視臺、網(wǎng)絡(luò)攝像機等。
- 單擊啟動服務(wù)按鈕,會變成停止服務(wù)字樣表示啟動服務(wù)成功。
- 在啟動服務(wù)后支持動態(tài)添加地址、移除地址、清空地址。如果處于啟動服務(wù)中,添加后會立即推流。
- 從表格中選中一行,會自動將播放地址填寫到右下角,同時也會自動拷貝到剪切板。
- 一次推流可以分多種不同的地址訪問,右下角總共有三種地址,第一種是rtmp開頭的視頻流地址,可以用各種播放器打開,第二種是hls(m3u8)格式的地址,一般用于網(wǎng)頁瀏覽器顯示,第三種是webrtc格式的地址,一般用于瀏覽器或者部分支持該格式的播放器。
- 將地址粘貼到瀏覽器地址欄回車即可查看視頻流,地址也可以用播放器打開。
- 單擊停止服務(wù)按鈕會停止所有服務(wù),在啟動服務(wù)后支持動態(tài)添加文件、移除文件、清空文件。
三、體驗地址
- 體驗地址:https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取碼:01jf 名稱:bin_video_push
- 國內(nèi)站點:https://gitee.com/feiyangqingyun
- 國際站點:https://github.com/feiyangqingyun
- 個人主頁:https://blog.csdn.net/feiyangqingyun
- 知乎主頁:https://www.zhihu.com/people/feiyangqingyun/
四、各種命令
- rtmp推流 ffmpeg -re -stream_loop -1 -i f:/mp4/10.mp4 -c copy -f flv rtmp://192.168.0.110:6908/stream
- rtsp推流 ffmpeg -re -stream_loop -1 -i f:/mp4/10.mp4 -c copy -f rtsp rtsp://192.168.0.110:6907/stream
- 遠程推流 ffmpeg -re -stream_loop -1 -i f:/mp4/11.mp4 -c copy -f flv rtmp://47.114.127.78:6908/stream
- 網(wǎng)絡(luò)設(shè)備 ffmpeg -i rtsp://admin:Admin123456@192.168.0.64:554/Streaming/Channels/101 -vcodec copy -acodec copy -f flv rtmp://192.168.0.110:6908/stream
- 實時桌面 ffmpeg -f gdigrab -r 30 -i desktop -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtsp -g 5 -an rtsp://192.168.0.110:6907/stream
- 本地設(shè)備 ffmpeg -f dshow -i video=“USB Video Device”:audio=“麥克風 (USB Audio Device)” -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtsp rtsp://192.168.0.110:6907/stream
- 播放設(shè)備 ffplay -f dshow video=“USB Video Device”:audio=“麥克風 (USB Audio Device)”
文章來源地址http://www.zghlxwxcb.cn/news/detail-508316.html
文章來源:http://www.zghlxwxcb.cn/news/detail-508316.html
到了這里,關(guān)于Qt/C++編寫推流綜合應(yīng)用示例(文件推流/桌面推流/本地攝像頭/網(wǎng)絡(luò)攝像頭/轉(zhuǎn)發(fā)推流/視頻分發(fā))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!