Nginx+FFmpeg實現rtsp流轉hls流,在WEB通過H5 video實現視訊播放
一、FFmpeg+Nginx轉流hls
1、FFmpeg安裝
官網:http://ffmpeg.org
windows下安裝:
http://ffmpeg.zeranoe.com/builds/ ,下載並解壓FFmpeg資料夾,配置環境變數:在“Path”變數原有變數值內容上加上d:\ffmpeg\bin,驗證:ffmpeg -version 出現版本號則成功。
Linux下安裝:
(1)下載最新原始碼包並解壓
$ wget http://ffmpeg.org/releases/ffmpeg-4.1.tar.gz
$ tar zxvf ffmpeg-4.1.tar.gz
(2)安裝ffmpeg
$ cd ffmpeg-4.1/
$ ./configure
報錯:
(3)安裝yasm
$ yum install yasm
(4)繼續安裝ffmpeg
$ ./configure
$ make
$ make install
(5)測試
$ ffmpeg
輸入ffmpeg列印了相關資訊,表示安裝成功
2、Nginx安裝
Windows下安裝:
Linux下安裝:
3、Nginx配置
修改配置檔案:nginx/conf/nginx.conf
在http --> server下增加:
# ffmpeg生成hls流的http訪問配置
location /hls {
#若nginx\conf\mime.types中沒有配置如下type,請加上,或直接在mime.types加
#types{
# application/vnd.apple.mpegurl m3u8;
# application/x-mpegURL m3u8;
# video/mp2t ts;
#}
root html;
#add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}
注: 下面用ffmepg轉流需要指定目標路徑為上面配置的nginx/html/hls
。
然後,啟動nginx服務
4、FFmpeg命令列轉流
ffmpeg -i "rtsp://admin:ajb123456@192.168.10.36" -c copy -f hls -hls_time 2.0 -hls_list_size 1 -hls_wrap 15 D:/nginx/html/hls/test.m3u8
其中: D:/nginx/html/hls/
test.m3u8 是對應nginx.conf配置中的hls訪問路徑/hls
ffmpeg 關於hls方面的指令說明:
- -hls_time n: 設定每片的長度,預設值為2。單位為秒
- -hls_list_size n:設定播放列表儲存的最多條目,設定為0會儲存有所片資訊,預設值為5
- -hls_wrap n:設定多少片之後開始覆蓋,如果設定為0則不會覆蓋,預設值為0.這個選項能夠避免在磁碟上儲存過多的片,而且能夠限制寫入磁碟的最多的片的數量
- -hls_start_number n:設定播放列表中sequence number的值為number,預設值為0
用java封裝了操作FFmpeg的util。參見:https://github.com/powerLeePlus/java-FFmpeg-rtsp2hls
二、HTML通過H5播放
參考 瀏覽器播放m3u8檔案 ,將source --> src改為:http://192.168.5.202:80/hls/test.m3u8,如下:
<source src="http://192.168.5.202/hls/test.m3u8" type="application/x-mpegURL">
瀏覽器開啟index.html。點選開始播放,即可看到效果。
參考:
Linux-安裝FFmpeg
ffmpeg+nginx+video實現rtsp流轉hls流,通過H5檢視監控視訊
ffmpeg java 實時視訊流轉碼(ffmpeg-cli-wrapper
https://github.com/bramp/ffmpeg-cli-wrapper/
java封裝FFmpeg命令,支援原生ffmpeg全部命令,實現FFmpeg多程式處理與多執行緒輸出控制(開啟、關閉、查詢),rtsp/rtmp推流、拉流
相關文章
- Nginx+FFmpeg實現RTSP轉RTMPNginx
- JMeter流媒體線上播放HLS外掛BlazeMeter - HLS Plugin實現視訊線上播放壓測JMeterPlugin
- 海康RTSP轉flv並實現h5頁面播放H5
- video自定義實現視訊播放功能IDE
- FFmpeg 播放 RTSP/Webcam 流Web
- 如果通過流資料實現實時分析?
- ReactNative——react-native-video實現視訊全屏播放ReactIDE
- Vue+Video.js播放m3u8視訊流VueIDEJS
- web實戰:video結合canvas實現視訊線上截圖WebIDECanvas
- RTSP H264/HEVC 流 Wasm 播放ASM
- 元件間通訊--利用mitt實現事件匯流排元件MIT事件
- web音訊流轉發之音視訊直播Web音訊
- 使用海康H5視訊播放器開發包實現監控播放H5播放器
- iOS開發 整合ijkplayer實現直播#拉流#播放iOS
- WPF中以MVVM方式,實現RTSP影片播放MVVM
- 實現播放視訊及彈幕
- 從Chrome原始碼看audio/video流媒體實現二Chrome原始碼IDE
- 音視訊學習 (十一) Android 端實現 rtmp 推流Android
- NGINX如何實現rtmp推流服務--視訊快取Nginx快取
- vue實現瀑布流Vue
- css實現瀑布流CSS
- 卡片瀑布流實現
- UDP實現音訊影片流傳輸UDP音訊
- Qt+FFmpeg仿VLC接收RTSP流並播放QT
- Flutter:基於video_player實現視訊相關手勢控制、全屏播放FlutterIDE
- H5頁面實現滑動控制音訊播放H5音訊
- 節流原理以及實現
- 瀑布流簡單實現
- JAVA實現節流閥Java
- 基於Flutter Video_Player實現倍速播放FlutterIDE
- 實時流(直播流)播放、上牆(大屏播放)解決方案
- 實現鏈上生態資料資訊無障礙流轉
- 如何實現視訊加密全平臺播放加密
- Web 端 APNG 播放實現原理Web
- WebRTC + WebSocket 實現視訊通話Web
- 機器視覺“康代”是如何實現全球資料高效流轉視覺
- IOS 整合 Bilibili IJKPlayer播放器,播放rtmp視訊流iOS播放器
- 帶你用AVPlayer實現音訊和視訊播放音訊