2026/04/17
2021/05/14
之前的直播都是直接上youtube
今天有個需求 希望能夠不要使用youtube
而且user要能直接用browser看 不需要 vlc
因為之前上看校的直播使用的是 rtmp
查了一下資料
如果要在browser用rtmp
使用的播放程式都必需轉成flash
問題是現在沒有browser支援flash了
所以想到另一個方式
先把串流轉成hls (m3u8)的格式
在srs.conf 裡進行如下的修改
vhost __defaultVhost__ {
hls {
enabled on;
hls_path /usr/local/srs/objs/nginx/html/; (此行依現況調整)
hls_fragment 10;
hls_window 60;
}
}
改完重啟 並進行串流後
會在html生成live目錄及相關的m3u8文件
在client端目前看來只有 safari 能直接在html5 使用 <video> 播放
其他browser都需要再呼叫播放器
參考以下範例
<html>
<head>
<link href="https://vjs.zencdn.net/7.4.1/video-js.css" rel="stylesheet">
</head>
<body>
<video id='my-video' class='video-js' controls preload='auto' width='800' height='600' poster='avatar-poster.jpg'
data-setup='{ "html5" : { "nativeTextTracks" : true } }'>
<source src='http://1.2.3.4:8080/live/livestream.m3u8' type="application/x-mpegURL">
<p class='vjs-no-js'>
To view this video please enable JavaScript, and consider upgrading to a web browser that
<a href='https://videojs.com/html5-video-support/' target='_blank'>supports HTML5 video</a>
</p>
</video>
<script src='https://vjs.zencdn.net/7.4.1/video.js'></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/5.15.0/videojs-contrib-hls.min.js"></script>
<script>
var player = videojs('my-video');
player.play();
</script>
</body>
</html>
如果不使用直播而是想播放檔案
就要先把 mp4 轉成 hls
指令如下
ffmpeg -i video.mp4 -codec: copy -start_number 0 -hls_time 15 -hls_list_size 0 -f hls video.m3u8
接下來再依照上述的html範例進行修改
https://caniuse.com/http-live-streaming
https://blog.csdn.net/weixin_40592935/article/details/109361642
2018/11/02
最近找到另一個srs 看來也方便的
記錄一下
以下是官方的安裝步驟
Step 1: get SRS
git clone https://github.com/ossrs/srs && cd srs/trunk
Step 2: build SRS, Requires Centos6.x/Ubuntu12 32/64bits, others see Build(CN,EN).
./configure && make
Step 3: start SRS
./objs/srs -c conf/srs.conf
srs.conf 可依需求進行修改
測試的結果在 linux mint 19 x64 上無法編譯成功
在ubuntu 16.04 x64 及 centos 7 x64 是ok的
ubuntu 18.04 沒試
如果要在centos 7上安裝要補一下 rpm
yum install -y gcc gcc-c++ make patch unzip sudo
再來依上述的步驟執行即可
不過要注意的是
執行後會在几器上開三個port 1935 1985 8080
記得用iptables 限制一下
尤其是8080 是web介面
執行完後利用obs把視訊串流上來
步驟參考之前的po文 要改的是串流的url如下圖
改一下server的ip及相關設定
再來使用vlc觀看
vlc rtmp://1.2.3.4/live/livestream
live及livestream對照上面進行修改
目前測試起來 server 上 srs 的 cpu 吃不到 1 %
但obs的串流相當吃cpu 尤其是解析度高的時候
