九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
EasyMedia: Springboot、netty實(shí)現(xiàn)的http

 EasyMedia

介紹

Springboot、netty實(shí)現(xiàn)的http-flv、websocket-flv流媒體服務(wù)(可用于直播點(diǎn)播),支持rtsp、h264、h265等、rtmp等多種源,h5純js播放(不依賴flash),不需要依賴nginx等第三方,延遲大部分在1-5秒內(nèi)(已經(jīng)支持轉(zhuǎn)復(fù)用,h264的流自動(dòng)轉(zhuǎn)封裝,超低延遲。PS:當(dāng)然還有種更低延遲的不用flv方案沒(méi)時(shí)間寫(xiě)了,但是主要是flv比較大眾,這個(gè)一般也夠用了)。

成品下載-7.16,此版本已不是最新,新版本請(qǐng)自行下載編譯

鏈接:https://pan.baidu.com/s/1kx3pwYVG_HfAt8JmQti86g --來(lái)自百度網(wǎng)盤(pán)超級(jí)會(huì)員V4的分享

前端源碼傳送門(mén)

PS:項(xiàng)目里已經(jīng)集成最新版編譯好的前端,由于前端只是個(gè)demo,這里是沒(méi)有hls功能的版本,hls前端播放比較簡(jiǎn)單,我就懶得上傳了

功能匯總 (不知道怎么使用的可以直接看wiki,簡(jiǎn)潔明了)

  • 支持播放 rtsp、rtmp、http、文件等流……
  • pc端桌面投影
  • 支持永久播放、按需播放(無(wú)人觀看自動(dòng)斷開(kāi))
  • 自動(dòng)判斷流格式h264、h265,自動(dòng)轉(zhuǎn)封裝
  • 支持http、ws協(xié)議的flv
  • 支持hls內(nèi)存切片(不占用本地磁盤(pán),只占用網(wǎng)絡(luò)資源)
  • 重連功能
  • 支持javacv、ffmpeg方式切換
  • 云臺(tái)控制(目前只支持???、大華待更新)

軟件架構(gòu)

  • netty負(fù)責(zé)播放地址解析及視頻傳輸,通過(guò)javacv推拉流存到內(nèi)存里,直接通過(guò)輸出到前端播放
  • 后端:springboot、netty,集成websocket
  • 前端:vue、html5(簡(jiǎn)單的管理頁(yè)面)
  • 播放器:西瓜播放器 http://h5player.bytedance.com/ (字節(jié)跳動(dòng)家的,不介紹了,抖音視頻、西瓜視頻都杠杠的,當(dāng)然只要支持flv的播放器都可以)
  • 媒體框架:javacv、ffmpeg

使用教程

流媒體服務(wù)會(huì)綁定兩個(gè)端口,分別為 8866(媒體端口)、8888(web端口,后續(xù)會(huì)做簡(jiǎn)單的管理頁(yè)面) 您只需要將 {您的源地址} 替換成您的,然后放播放器里就能看了

  • 播放地址(播放器里直接用這個(gè)地址播放)
http://localhost:8866/live?url={您的源地址}
ws://localhost:8866/live?url={您的源地址}
例如rtsp:
http://localhost:8866/live?url=rtsp://admin:VZCDOY@192.168.2.84:554/Streaming/Channels/102
ws://localhost:8866/live?url=rtsp://admin:VZCDOY@192.168.2.84:554/Streaming/Channels/102
文件(支持格式參照f(shuō)fmpeg支持的格式):
http://localhost:8866/live?url=d:/flv/testVideo.mp4
ws://localhost:8866/live?url=d:/flv/testVideo.mp4
電腦桌面投影(url改成desktop即可):
http://localhost:8866/live?url=desktop
ws://localhost:8866/live?url=desktop
  • 推拉流(有兩種方式)
  1. 按需播放(默認(rèn))直接使用上面播放地址就可以播放,每次第一個(gè)用戶打開(kāi)會(huì)創(chuàng)建推流,沒(méi)人看時(shí)十幾秒后會(huì)自動(dòng)斷開(kāi)流。
  2. 永久播放,通過(guò)restfu api或者頁(yè)面先新增流,再開(kāi)啟推流,在服務(wù)同級(jí)目錄會(huì)生成一個(gè)camera.json,重啟服務(wù)發(fā)現(xiàn)camera.json也會(huì)自動(dòng)推流,用json文件是方便手動(dòng)維護(hù)源地址,之后通過(guò)播放地址可以在瀏覽器直接秒開(kāi)。
  3. hls播放, http://localhost:8888/hls?url={您的源地址}
永久播放還有一種捷徑,就是在播放地址后面加上autoClose=false參數(shù),也會(huì)加入到j(luò)son中。
例如:
http://localhost:8866/live?url=rtsp://admin:VZCDOY@192.168.2.84:554/Streaming/Channels/102&&&autoClose=false
ws://localhost:8866/live?url=rtsp://admin:VZCDOY@192.168.2.84:554/Streaming/Channels/102&&&autoClose=false
###
hls播放例子:(注意:hls為http端口8888,并且不支持url后面參數(shù),開(kāi)啟切片后可以播放)
http://localhost:8888/hls?url=rtsp://admin:VZCDOY@192.168.2.84:554/Streaming/Channels/102
  • url參數(shù)說(shuō)明
參數(shù)加在播放地址url最后面,使用 [&&&] 符號(hào)
例如:
http://localhost:8866/live?url=rtsp://admin:VZCDOY@192.168.2.84:554/Streaming/Channels/102&&&autoClose=false&&&ffmpeg=true
ws://localhost:8866/live?url=rtsp://admin:VZCDOY@192.168.2.84:554/Streaming/Channels/102&&&autoClose=false&&&ffmpeg=true
###
autoClose=false 設(shè)置為永久播放
ffmpeg=true 使用ffmpeg方式,提高兼容穩(wěn)定性(不支持的流可以試試這個(gè)參數(shù))
//hls=true(目前還不支持此參數(shù),只能api或者網(wǎng)頁(yè)端控制開(kāi)啟)
  • 云臺(tái)功能
目前支持??迪鄼C(jī),大華待更新
http://localhost:8888/hk/ctrl?ip=192.168.2.120&op=left&username=admin&password=VZCDOY
ip 相機(jī)ip
op 操作,up、down、left、right、left_up、left_down、right_up、right_down、big、small
username 相機(jī)用戶名
password 相機(jī)密碼
port 控制端口(可不傳)
  • 頁(yè)面功能
可以訪問(wèn) http://localhost:8888
具體功能參照截圖
  • restful api
新增流 http://localhost:8888/add?url={您的源地址}&remark={備注}
停止并刪除 http://localhost:8888/del?url={您的源地址}
停止flv推流 http://localhost:8888/stop?url={您的源地址}
開(kāi)啟flv推流 http://localhost:8888/start?url={您的源地址}
開(kāi)啟hls切片 http://localhost:8888/startHls?url={您的源地址}
停止hls切片 http://localhost:8888/stopHls?url={您的源地址}
查看保存的流 http://localhost:8888/list
  • 成品運(yùn)行方式(由于是跨平臺(tái)的,未做ffmpeg精簡(jiǎn),所以包會(huì)比較大)
java -jar EasyMedia-x.x.x-SNAPSHOT.jar
還可以這樣改端口
java -jar -Dserver.port=頁(yè)面端口 -Dmediaserver.port=媒體端口 EasyMedia-x.x.x-SNAPSHOT.jar

疑問(wèn)解答

  • 在vlc、ffplay等播放器測(cè)試存在延遲較高是正常的,是因?yàn)樗麄兡J(rèn)的嗅探關(guān)鍵幀的時(shí)間比較長(zhǎng),測(cè)延遲建議還是用flv.js播放器測(cè)試。
  • 是否需要ffmpeg推流,不需要,就是為了簡(jiǎn)化使用,只需運(yùn)行一個(gè)服務(wù)即可。
  • 很多人想用文件點(diǎn)播,可以參考截圖。

截圖

源碼教程

  1. 環(huán)境:java8+
  2. 標(biāo)準(zhǔn)的maven項(xiàng)目,sts、eclipse或者idea導(dǎo)入,直接運(yùn)行main方法

更新說(shuō)明 2021-09-17

  • 升級(jí)javacv1.5.6
  • 完善??翟婆_(tái)控制接口
  • 修復(fù)ffmpeg rtmp播放不了問(wèn)題
  • 優(yōu)化打包,移除不需要的平臺(tái)(mac等),目前支持window、linux,包大小到100m內(nèi)

更新說(shuō)明 2021-07-16

  • 升級(jí)javacv1.5.5,解決花屏問(wèn)題,提升啟動(dòng)運(yùn)行速度
  • 移除camera.json,采用h2數(shù)據(jù)庫(kù),運(yùn)行jar同級(jí)目錄會(huì)生成emdata文件夾
  • 新增jpa自動(dòng)創(chuàng)建表,mybatis-plus等
  • 其他亂七八糟優(yōu)化

更新說(shuō)明 2021-06-06

  • 新增支持使用ffmpeg推拉流,提高兼容穩(wěn)定性(流幾乎全支持,再無(wú)花屏,綠色杠杠啥的)
  • 新增“hls內(nèi)存切片”,不占用本地磁盤(pán)讀寫(xiě),速度你懂的,只占用網(wǎng)絡(luò)資源,目前默認(rèn)全部轉(zhuǎn)碼,延遲在5秒左右,稍微費(fèi)點(diǎn)cpu
  • 優(yōu)化接口、優(yōu)化服務(wù)、新增其他配置參數(shù)
  • 新增pc端桌面投影
  • 更新前端功能
  • 完善項(xiàng)目注釋
  • 新增啟動(dòng)logo

更新說(shuō)明 2021-05-21

  • 支持轉(zhuǎn)復(fù)用或轉(zhuǎn)碼,h264的流支持自動(dòng)轉(zhuǎn)封裝,超低延遲

更新說(shuō)明 2021-05-18

  • 解決大華等帶有參數(shù)的地址解析問(wèn)題

更新說(shuō)明 2021-03-14

  • 新增簡(jiǎn)單的web頁(yè)面管理
  • 優(yōu)化自動(dòng)斷開(kāi)
  • 新增服務(wù)端自動(dòng)重連
  • 支持本地文件點(diǎn)播
  • 支持啟動(dòng)服務(wù)自動(dòng)推流
  • 支持音頻轉(zhuǎn)碼
  • 啟動(dòng)服務(wù)前初始化資源(防止第一次啟動(dòng)慢)
  • 新增保存數(shù)據(jù)到同級(jí)目錄的camera.json

更新說(shuō)明 2021-02-20

  • 移除原有spring websocket,采用高性能的netty作為http、ws服務(wù)。
  • 完善關(guān)閉流邏輯,沒(méi)人看時(shí)會(huì)自動(dòng)斷開(kāi)。
  • 由于替換netty,考慮到視頻文件需要上傳到服務(wù)器,所以暫時(shí)移除本地文件支持。

關(guān)于LICENSE

有人問(wèn)這個(gè)能否商用,能,本軟件采用MIT寬松協(xié)議,但是注意軟件里面應(yīng)用了一些其他庫(kù)javacv、ffmpeg等均是GPL協(xié)議,需要遵循此協(xié)議,只要不修改javacv、ffmpeg等具有GPL協(xié)議的軟件,其他都能任意改,也可任意商用。

網(wǎng)上找的測(cè)試地址 安徽衛(wèi)視,建議用自己內(nèi)網(wǎng)的,公開(kāi)的可能速度就比較慢 (有時(shí)候會(huì)失效,盡量用自己的)

rtmp://58.200.131.2:1935/livetv/ahtv

為什么要寫(xiě)個(gè)這個(gè)

現(xiàn)在flash已經(jīng)被拋棄,h5播放的時(shí)代,網(wǎng)上實(shí)現(xiàn)大多不是特別完整的(比如拿到一個(gè)rtsp或者rtmp,也不知道怎么在h5頁(yè)面直接播放),當(dāng)然現(xiàn)在直播點(diǎn)播有很多方式,可以通過(guò)nginx帶flv模塊的當(dāng)rtmp服務(wù)、還有srs等流媒體服務(wù),而這里我們通過(guò)javacv來(lái)處理,事實(shí)上javacv性能足夠,底層ffmpeg也是通過(guò)c實(shí)現(xiàn),使用java調(diào)用c跟使用c++去調(diào)用c差不了多少毫秒延遲。java流媒體資料比較少,但從應(yīng)用層來(lái)說(shuō),java有著龐大的生態(tài)優(yōu)勢(shì),配合netty寫(xiě)出的流媒體性能可想而知,而此源碼目前也比較簡(jiǎn)單,可讀性比較強(qiáng),有能力者完全能自主改成java分布式流媒體。隨著人工智能圖像識(shí)別的發(fā)展,從流媒體獲取圖像數(shù)據(jù)是必要條件,有bug希望你們也能及時(shí)提出。

最后感謝eguid的javacv文檔,https://eguid.blog.csdn.net/

后續(xù)計(jì)劃

  • ? web管理頁(yè)面其實(shí)只也是個(gè)demo,以后看情況更新了
  • ? 增加錄制功能(打算專門(mén)做存儲(chǔ)至分布式文件系統(tǒng),獨(dú)立開(kāi)來(lái),先不集成進(jìn)來(lái)了)
  • ? 由于hls(m3u8)兼容性最好,水果、安卓和PC通吃,所以后續(xù)會(huì)加入m3u8切片方式
  • ? 原本還寫(xiě)了個(gè)通過(guò)ffmpeg子進(jìn)程推流,然后用socket服務(wù)接收的方案,等javacv版搞完善了再弄。
  • 云臺(tái)控制(集成??荡笕A云臺(tái)接口),看情況集成
  • 大部分功能已完成,個(gè)人精力有限,后續(xù)更新頻率會(huì)適當(dāng)降低
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
音視頻開(kāi)發(fā)——通信直播協(xié)議和視頻推流丨RTMP-RTSP
Nginx RTMP 功能研究和hls配置
視頻直播點(diǎn)播nginx
運(yùn)營(yíng)級(jí)的互聯(lián)網(wǎng)直播服務(wù)器集群架設(shè),搞定這一個(gè)開(kāi)源項(xiàng)目就夠了!
srs之深入淺出看流媒體
??礡TSP流轉(zhuǎn)RTMP并推送至Web端展示
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服