最近需要把hikvision的rtsp流播放在浏覽器中,由于rtmp和flv都需要flash支援,故定了rtsp轉hls的解決方案。
環境為ubuntu18,linux下手動編譯安裝使用者軟體,源碼放在/usr/local/src中,安裝路徑在/usr/local下。權限問題可使用sudo指令。
準備
安裝編譯需要用到的庫和工具
安裝pcre,支援rewrite功能
源碼位址:https://ftp.pcre.org/pub/pcre/
安裝zlib,支援gzip壓縮
源碼位址:http://zlib.net/
安裝ssl
源碼位址:https://www.openssl.org/source/
nginx的搭建
1. 下載下傳編譯nginx源碼及rtmp子產品
源碼位址:http://nginx.org/en/download.html
rtmp子產品源碼:https://github.com/arut/nginx-rtmp-module
編譯完成後,通過指令nginx -V檢視版本及配置參數。
2. 檢查80端口是否被占用
使用指令:
3. 啟動配置
nginx指令添加到全局指令:
在nginx的配置檔案nginx.conf中http子產品上面加入下面内容:
編寫index
接下來進入html檔案夾,index.html:
<html><head><meta charset="UTF-8"><title>Live Camtitle>head><script src="https://cdn.jsdelivr.net/npm/[email protected]">script><video id="video" autoplay="true" controls="controls" style="width:500px;height:300px">video><script>if (Hls.isSupported()) {var video = document.getElementById('video');var hls = new Hls();// bind them together
hls.attachMedia(video);
hls.on(Hls.Events.MEDIA_ATTACHED, function () {
console.log("video and hls.js are now bound together !");
hls1.loadSource("http://localhost/live/mystream.m3u8");
hls1.on(Hls.Events.MANIFEST_PARSED, function (event, data) {
console.log("manifest loaded, found " + data.levels.length + " quality level");});});}script>html>
編寫運作腳本
html檔案夾下建立live檔案夾,chmod指令更改權限。
建立ffmpeg轉碼腳本stream.sh:
通過指令./stream.sh,開始轉碼。浏覽器中輸入本地位址即可
如有其他問題歡迎留言交流。