一莲祸、 需要的工具
百度網(wǎng)盤(pán)
(1)RTSP服務(wù)器 地址 提取碼 htxw
(2)FFMPEG環(huán)境地址 提取碼 zc14
(3)視頻流播放測(cè)試軟件地址 提取碼3s9e
二排截、部署EasyDarwin服務(wù)器
據(jù)官網(wǎng)介紹,EasyDarwin擁有完整的源代碼摊灭,可以幫助開(kāi)發(fā)者更快更簡(jiǎn)單實(shí)現(xiàn)流媒體音視頻產(chǎn)品功能,使用完全免費(fèi)败徊;下面就介紹一下EasyDarwin的使用過(guò)程帚呼。
運(yùn)行成功會(huì)彈出一個(gè)控制臺(tái)窗口:
** 然后打開(kāi)瀏覽器輸入** http://localhost:10008, 進(jìn)入控制頁(yè)面,默認(rèn)用戶名密碼是admin/admin
三、ffmpeg命令行推rtsp流進(jìn)行測(cè)試
win32下使用FFMPEG 4.2.2庫(kù)下載地址:[Windows下32位的FFMPEG4.2.2的庫(kù)皱蹦,包括編譯運(yùn)行庫(kù)和頭文件_windows編譯ffmpeg-桌面系統(tǒng)代碼類(lèi)資源-CSDN下載[圖片上傳失敗...(image-aca860-1639104171178)]
https://download.csdn.net/download/xiaolong1126626497/12321684](https://download.csdn.net/download/xiaolong1126626497/12321684 "Windows下32位的FFMPEG4.2.2的庫(kù)煤杀,包括編譯運(yùn)行庫(kù)和頭文件_windows編譯ffmpeg-桌面系統(tǒng)代碼類(lèi)資源-CSDN下載")
ffmpeg推流本地視頻文件到RTSP服務(wù)器: (UDP這是采用協(xié)議)
C:/FFMPEG/ffmpeg_x86_4.2.2/bin/ffmpeg.exe -re -i "D:/BaiduNetdiskDownload/測(cè)試視頻/Earth_enc_ass.mp4" -vcodec copy -codec copy -f rtsp rtsp://127.0.0.1:554/stream
打開(kāi)EasyDarwin后臺(tái)網(wǎng)頁(yè)可以看到流已經(jīng)上傳上來(lái)了。
接下來(lái)使用VLC沪哺、PotPlayer沈自、或者自己編寫(xiě)一個(gè)流媒體播放器就可以拉取ffmpeg發(fā)布的RTSP流。
下面這個(gè)是采用自己開(kāi)發(fā)的流媒體播發(fā)器播放的效果:
這是采用PotPlayer播放器播放的效果:
采用TCP協(xié)議方式推流:(支持外網(wǎng)更加穩(wěn)定)
C:/FFMPEG/ffmpeg_x86_4.2.2/bin/ffmpeg.exe -re -i "D:/BaiduNetdiskDownload/測(cè)試視頻/Earth_enc_ass.mp4" -rtsp_transport tcp -vcodec h264 -f rtsp rtsp://127.0.0.1:554/stream
** 播放測(cè)試:**
四辜妓、采用ffmpeg代碼方式推rtsp流到服務(wù)器
對(duì)于RTMP和RTSP兩種格式需要使用兩種不同的封裝器枯途。
//RTMP封裝器
//avformat_alloc_output_context2(&oc,nullptr,"flv",filename); //發(fā)布到網(wǎng)絡(luò)
//RTSP封裝器
avformat_alloc_output_context2(&oc,nullptr,"rtsp",filename); //發(fā)布到網(wǎng)絡(luò)
** 軟件運(yùn)行效果:**
** 網(wǎng)頁(yè)上已經(jīng)提示收到發(fā)布的rtsp流:**
采用PotPlayer****播放的效果: 效果: 實(shí)現(xiàn)桌面同屏/聲畫(huà)同步。
五籍滴、JAVA代碼實(shí)現(xiàn)方式
依賴的工具包
<dependency>
<groupId>cn.novelweb</groupId>
<artifactId>tool-video</artifactId>
<version>1.3.3</version>
</dependency>
調(diào)用
command
包:command封裝的是ffmpeg的命令行工具.
調(diào)用CommandLineOperations.init(programConfig)初始化參數(shù)
調(diào)用CommandLineOperations.start()傳入需要執(zhí)行的命令就好
VideoEditing
包:edit封裝的是對(duì)CommandLineOperations的一個(gè)輕量級(jí)封裝.
這個(gè)類(lèi)里面包含了一些常用的對(duì)視頻處理的操作.
VideoEditing同樣需要調(diào)用init()方法
如果調(diào)用了CommandLineOperations.init()方法就不需要再調(diào)用VideoEditing.init()酪夷,這兩個(gè)用的是同一個(gè)init()方法;
參考方法上的注釋
format
包:format主要是做一些編碼格式的轉(zhuǎn)換的。
這個(gè)包是不需要你單獨(dú)下載FFMPEG的孽惰,包里面內(nèi)置了一個(gè)FFMPEG
FormatConversion.getVideoParameters()方法主要是獲取視頻文件的各種參數(shù)
六晚岭、使用nginx搭建RTMP服務(wù)器
百度云盤(pán)工具地址 提取碼(rzem)
部署方式一大把,可以自行搜索勋功,基本解壓就能用腥例,代碼實(shí)現(xiàn)可以參考上文中的用法。
參考