使用SRS+ffmpeg实现https推流flv
- 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>