使用SRS+ffmpeg实现https推流flv

发布于:2025-07-01 ⋅ 阅读:(21) ⋅ 点赞:(0)
  • 1·修改SRS的live.conf配置如下:
# Live streaming config for SRS.
# @see full.conf for detail config.

listen              1935;
max_connections     1000;
srs_log_tank        console;
daemon              off;

http_api {
    enabled         on;
    listen          1985;
}

http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
	
	  https {
        enabled     on;
        listen      8443;
	   cert       D:/your_cert.crt;
		key   D:/your_key.key;
    }
}

vhost __defaultVhost__ {
    hls {
        enabled         on;
    }
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
    }
}

修改srs.conf如下

listen              1935;
max_connections     1000;
daemon              on;

http_api {
    enabled         on;
    listen          1985;
}

http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;

    https {
        enabled     on;
        listen      8443;
        key         D:/your_key.key;
        cert        D:/your_cert.crt;
    }
}

rtmps {
    enabled         on;
    listen          2935;
    ssl_certificate       D:/your_cert.crt;
    ssl_certificate_key   D:/your_key.key;
}

rtc_server {
    enabled         on;
    listen          8000;
    candidate       $CANDIDATE;
}

vhost __defaultVhost__ {
    hls {
        enabled     on;
    }
    http_remux {
        enabled     on;
        mount       [app]/[stream].flv;
    }
    rtc {
        enabled     on;
        rtmp_to_rtc off;
        rtc_to_rtmp off;
    }
    play {
        gop_cache_max_frames 2500;
    }

    app myapp {
        hls {
            enabled on;
        }
        http_remux {
            enabled on;
            mount [app]/[stream].flv;
        }
        rtc {
            enabled on;
            rtmp_to_rtc off;
            rtc_to_rtmp off;
        }
        play {
            gop_cache_max_frames 2500;
        }
    }
}

  • 2·启动srs live脚本
    管理员模式运行srs-live.bat

  • 3`使用ffmpeg推流flv
    这里的orange.mp4替换为你的视频文件

ffmpeg -re -stream_loop -1 -i orange.mp4 -c:v libx264 -preset veryfast -tune zerolatency -b:v 2500k -maxrate 2500k -bufsize 5000k -g 50 -c:a aac -b:a 128k -f flv rtmp://localhost/myapp/stream
  • 测试

使用vlc能播放即可
https://127.0.0.1:8443/myapp/stream.flv

或者使用网页flv.js播放

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8" />
    <title>FLV HTTPS 播放示例</title>
    <script src="https://cdn.jsdelivr.net/npm/flv.js@latest/dist/flv.min.js"></script>
</head>
<body>
    <h3>FLV HTTPS 播放示例</h3>
    <video id="videoElement" controls width="640" height="360"></video>

    <script>
        if (flvjs.isSupported()) {
            var videoElement = document.getElementById('videoElement');
            var flvPlayer = flvjs.createPlayer({
                type: 'flv',
                url: 'https://127.0.0.1:8443/myapp/stream.flv'
            });
            flvPlayer.attachMediaElement(videoElement);
            flvPlayer.load();
            flvPlayer.play().catch(function(e){
                console.error('播放失败:', e);
            });
        } else {
            alert('你的浏览器不支持 flv.js');
        }
    </script>
</body>
</html>

网站公告

今日签到

点亮在社区的每一天
去签到