Easydarwin加FFMPEG實現HLS流視頻點播

前言

最近有點迷茫,因此將本身用過的東西寫個Demo記錄一下,複習複習。html

具體實現:git

Easydarwin 一個開源的好用的流媒體平臺框架。github

FFMPEG  一個視頻音頻處理神器,就是用起來有點麻煩,必須保證命令正確。npm

FFMPEG將視頻或者視頻地址(Rtsp,Rtmp)轉碼推流到EasyDarwin作轉發,FFMPEG將EasyDarwin視頻作切片成M3U8文件。瀏覽器

網站直接訪問M3U8文件,實現HLS點播。算是一個粗糙的Demo,具體能夠根據需求更改。框架

參考:tcp

FFMPEG:ide

官網參考測試

流媒體具體命令參考網站

下載地址

EasyDarwin:

Easydarwin官網

Github地址

下載地址

實現過程

EasyDarwin 下載解壓以後以下:

 

如今這個已經很完善了,最開始用的使用bat文件啓動,並且沒有這個簡潔,

Easydarwin.ini 配置項和注意事項能夠本身配置也能夠使用默認配置。

單擊 ServiceInstall-EasyDarwin.exe 等待安裝完成以下:

 

打開瀏覽器,輸入 http://127.0.0.1:10008 能夠看到設備當前運行狀態和推流拉流的列表,效果界面以下:

 

測試視頻地址:  rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov

這個地址公開的,算是比較穩定的,之前測試能夠用如今仍是能夠,有些地址就沒辦法訪問了。

使用cmd輸入  ffmpeg.exe -i "RTSP地址" -vcodec copy -acodec copy  -rtsp_transport tcp -f rtsp "推流地址"

Rtsp默認爲554端口,RTSP地址爲最後實際使用的地址,推流爲 rtsp://127.0.0.1/test.hls 127.0.0.1本地測試,遠程爲推流服務IP

例子: ffmpeg.exe -i rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov -vcodec copy -acodec copy  -rtsp_transport tcp -f rtsp rtsp://127.0.0.1/test.hls

具體命令行參數詳解參考:官網參考 

每次使用。。。都是頭大,用過以後吧命令記下來,須要更改就一個個看。

推流成功,cmd窗口以下會不停的刷新當前參數:

此時EasyDarwin網站推流列表會顯示對應地址和能夠拉流的地址以下:

驗證該播放地址是否能夠播放,能夠使用VLC輸入該地址測試。

此時推流和接收部分完成,只須要用FFMPEG獲取播放地址的數據進行切片獲取M3U8,網站播放。

在打開一個cmd,命令以下:

ffmpeg.exe -i rtsp://127.0.0.1/test.hls -fflags flush_packets -max_delay 2 -hls_flags delete_segments -hls_time 2 -g 30 ********\live.m3u8

紅色部分,第一個爲EasyDarwin轉發的播放地址,第二個爲live.m3u8文件的保存路徑,成功以後效果圖以下:

此時在網站中訪問這個地址,就能夠實現HLS點播。

網站實現:

首先下載一個 hls.js的庫文件:地址

代碼實現:

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title></title>
    <script src="hls.js"></script> //下載的hls.js 文件路徑
    <script> function btn_OpenHls() { var htmlvideo = document.getElementById("videoPaly"); htmlvideo.controls = true; var hls = new Hls(); hls.loadSource("/live.m3u8");//m3u8文件路徑
 hls.attachMedia(htmlvideo); hls.on(Hls.Events.MANIFEST_PARSED, function () { htmlvideo.play(); }); } </script>
</head>
<body>
    <button onclick="btn_OpenHls()">打開HLS視頻</button>
    <video id="videoPaly" width="300" height="300"></video>
</body>
</html>

總結

不少時候咱們站在了巨人的肩膀上,不少東西發現了才知道本身眇小。

第一次接觸FFMPEG心裏就一句話:「臥槽,這個東西好方便,寫這個東西的人好牛逼」。

第一次使用EasyDarwin感受很麻煩,後面發現真的好用簡單了不少。

給本身加個油,努力,奮鬥~~~~~~~

相關文章
相關標籤/搜索