天天看點

ffmpeg nginx flv_ffmpeg輕松轉碼rtsp到浏覽器中播放

最近需要把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檢視版本及配置參數。

ffmpeg nginx flv_ffmpeg輕松轉碼rtsp到浏覽器中播放

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,開始轉碼。浏覽器中輸入本地位址即可

ffmpeg nginx flv_ffmpeg輕松轉碼rtsp到浏覽器中播放

如有其他問題歡迎留言交流。

繼續閱讀