顯示具有 srs 標籤的文章。 顯示所有文章
顯示具有 srs 標籤的文章。 顯示所有文章

2026/04/17

昨天看文章有提到 MediaMTX 這個軟体
單一檔案就可以執行
想說下載來玩玩
有几個點要注意

使用obs串流時 輸出 設定一定要修改如下 否則無法串流成功


















另外就是直接用browser 打開 使用 webrtc 時 影像沒問題 但完全沒聲音
但這時用 vlc 去開 影像聲音都沒問題
查到說是音訊編碼的問題
但srs沒有這個問題

使用如下指令推流 影音都沒問題

ffmpeg -re -i input.mp4 \
  -c:v libx264 -preset veryfast -tune zerolatency \
  -c:a libopus -ar 48000 -ac 2 -b:a 96k \
  -f rtsp rtsp://localhost:8554/live


還有一個問題就是browser打開後預設是靜音 要手動打開



使用以下指令進行螢幕擷取並串流 影音都沒問題

ffmpeg -f x11grab -video_size 1024x768 -framerate 30 -i :0.0 \
-f pulse -i default \
-c:v libx264 -preset veryfast -pix_fmt yuv420p -g 60 -bf 0 \
-c:a libopus -b:a 128k -ar 48000 -ac 2 \
-flags +global_header \
-rtsp_transport tcp -f rtsp rtsp://localhost:8554/live


obs目前還沒找到方法

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


https://videojs.com/


https://videojs.com/getting-started

2018/11/02

之前寫過一篇用obs + nginx 來進行串流
最近找到另一個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 尤其是解析度高的時候