基於nginx的hls直播系統

2021-07-06 05:17:45 字數 2188 閱讀 7718

之前寫了一篇基於nginx的hls點播系統,本質上是把乙個**檔案做成m3u8索引,對應的檔案都是提前做好放在伺服器上的。

nginx充當的是個http 伺服器的角色,之所以說是基於nginx的,是因為它可以設定限速。

1,軟體編譯:

所需模組:nginx-rtmp-module

github:

這個模組對nginx的版本好像沒有什麼要求,我用1.2.2是可以的。編譯方法github上寫的很清楚。

[plain]view plain

copy

./configure --add-module=

make  

make install  

1.3.14-1.5.0版本

2,rtmp源的提供

一類是用乙個已有的**檔案,一類是用攝像頭和麥克風採集。

例如:[plain]view plain

copy

ffmpeg.exe -re -i sample.flv -vcodec copy -acodec copy -f flv rtmp://server-ip-address/hls/mystream  

ffmpeg.exe -f dshow -i video="usb2.0 camera" -vcodec libx264 -pix_fmt yuv420p -f flv rtmp://server-ip-address/hls/mystream  

第二個是基於dshow的,在windows上,編碼用x264,影象用420p,

3,nginx配置

這個nginx-rtmp-module裡面已經包含了乙個nginx.conf,位於test目錄下,如果你已經有了乙個nginx配置檔案,那麼只需要用

[plain]view plain

copy

include  /test/nginx.conf;  

即可包含這個新配置,include必須與現有配置平級,即http級別的。

這裡通常會有些問題,例如rtmp不能識別。

[plain]view plain

copy

unknown directive "?rtmp  

unknown directive "rtmp" in /etc/nginx/conf.d/rtmp.conf:1  

解決方法一般是兩種,乙個是新conf的編碼必須是和原有的一樣,一般都是ascii的,用file指令就知道。

一是重新編譯後的nginx的model沒有載入進去,可以嘗試stop nginx再start就行。

hls是hls直播的。是我這裡用的。

4,html**修改

命名為playhls.html

[plain]view plain

copy

your browser does not support html5 video.

/dev/snd

linux 音訊驅動「

gstreamer 在visual studio 中環境搭建記錄

python+selenium2+chrome構建動態網頁爬蟲工具頂

0 踩

Mac直播伺服器Nginx配置對HLS的支援

1 安裝好 nginx 後,開啟配置檔案 usr local nginx conf nginx.conf 2 啟動 nginx 的命令 sudo usr local nginx sbin nginx s stop sudo usr local nginx sbin nginx server hls配...

讓Chrome看不了WWDC直播的HLS技術詳解

在html5頁面上使用hls 使用 http 協議網路相容性好,http 資料報也可以方便地通過防火牆或者 伺服器,cdn 支援良好。上圖可以看出,hls總共有三個部分 serve cdn client。hls 協議的主要內容是關於 m3u8 這個文字協議,其實生成與解析都非常簡單,示例如下 簡單的...

基於WebRTC的直播CDN

4.2 拉流 5 最短回源路徑 6 業務系統 7 一些特性 問題 主要特性 整體上這個系統是乙個典型的cdn結構,主要包含排程系統 cdn源節點和cdn邊緣節點。節點服務列表 服務功能 transfmtd 轉格式服務,主要負責webrtc的rtp流與rtmp流的互轉。janus webrtc流 服務...