使用Nginx-rtmp怎么實現(xiàn)一個直播媒體實時流效果?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供祁縣企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、網(wǎng)站制作、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為祁縣眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
流程圖
?
1 2 3 4 5 6 7 |
|
1. 編譯Nginx
RTMP流媒體服務(wù)器,現(xiàn)成的開源方案有很多,有SRS,Red5,wowoza,F(xiàn)MS等,我這里使用的是Nginx的rtmp插件實現(xiàn)實時流轉(zhuǎn)發(fā)。
下載 nginx-rtmp-module https://github.com/arut/nginx-rtmp-module
重新編譯nginx
?
1 |
|
2. 配置Nginx.conf
基本的nginx配置,這里就不進行介紹了,需要了解的可以參考我其他博客,里面有介紹。這里只介紹rtmp段的定義。
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
3. HTTP異步通知回調(diào)
Nginx-rtmp-module插件實現(xiàn)了針對RTMP協(xié)議的一些命令做了事件通知。這里我通過一個簡單的SpringBoot項目,快速搭建一個HTTP服務(wù)來接收RTMP的回調(diào)。
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
|
4. 運行效果
(1) 啟動nginx和SpringBoot
(2) 以下是SpringBoot打印信息(各位可以簡單分析一下這些日志的)
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
(3) 客戶端進行推流,這里的推流軟件,我是使用這個 http://www.iavcast.com/html/ruanjian/iavcast.html
(4) 移動端,我使用微信小程序里的 騰訊視頻云 這個小程序里面有RTMP測試
(5) nginx-rtmp 日志
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
5. RTMP鑒權(quán)方式
一般商用的話,為了防止被其他人使用和安全性考慮,所以需要對RTMP進行鑒權(quán)處理。鑒權(quán)如果有特殊性的,可以通過修改nginx-rtmp-module的源代碼,然后進行修改,其實就是增加個auth函數(shù),這個函數(shù)可以查詢數(shù)據(jù)庫之類的,然后決定返回0成功還是-1表示失敗。
除了上面說到的方式,還可以通過簡單的方式,就是上面提到的HTTP回調(diào)。如果HTTP回調(diào)返回的HTTP狀態(tài)碼是2xx的,表示成功。如果是返回5xx的狀態(tài)碼,那么表示失敗。那樣的話,服務(wù)器就是斷開RTMP連接。
就是在 rtmp://rtmp.wunaozai.com/rtmp_live/room?username=username&password=password
至于實現(xiàn),這里暫時還沒有,其實就是在SpringBoot項目中對每個請求,判斷一下參數(shù)即可。如果后面有機會就詳細(xì)寫一下,關(guān)聯(lián)redis數(shù)據(jù)庫,實現(xiàn)房間號功能。但是可能不會寫了,因為實際上不難。就是整個流程跑通還是比較多代碼要寫的,在博客里貼太多代碼有點不好。博客最主要的還是提供思路。實際實現(xiàn)就應(yīng)該在項目中實現(xiàn)了。
6. 其他
這里是一些配置說明和示例
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
|
關(guān)于使用Nginx-rtmp怎么實現(xiàn)一個直播媒體實時流效果問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。
原文鏈接:https://www.cnblogs.com/wunaozai/p/9427730.html
文章標(biāo)題:使用Nginx-rtmp怎么實現(xiàn)一個直播媒體實時流效果
URL地址:http://m.rwnh.cn/article0/jcjdio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站策劃、ChatGPT、建站公司、網(wǎng)站收錄、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)