参考博客10 分钟搞定直播:Node.js + FFmpeg + flv.js 全栈实战
FFmpeg安装这里不细说
Nodejs代码 version<=16
前置npm install node-media-server@2.6.4 搭配 version<=16的nodejs,>16用新版的
const NodeMediaServer = require('node-media-server');
const config = {
rtmp: {
port: 1935,
chunk_size: 60000,
gop_cache: true,
ping: 30,
ping_timeout: 60
},
http: {
port: 8000,
allow_origin: '*'
}
};
new NodeMediaServer(config).run();
console.log('RTMP: rtmp://localhost:1935/live/stream');
console.log('HTTP-FLV: http://localhost:8000/live/stream.flv');
html代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>我的直播</title>
<script src="https://cdn.jsdelivr.net/npm/flv.js@1.6.2/dist/flv.min.js"></script>
</head>
<body>
<h1>我的直播间</h1>
<video id="video" width="800" height="450" controls autoplay></video>
<script>
if (flvjs.isSupported()) {
const player = flvjs.createPlayer({
type: 'flv',
isLive: true,
url: 'http://127.0.0.1:8000/live/stream.flv'
});
player.attachMediaElement(document.getElementById('video'));
player.load();
player.play();
} else {
alert('当前浏览器不支持 flv.js');
}
</script>
</body>
</html>
FFmepg推视频
ffmpeg -re -i sp.mp4 -c:v libx264 -preset ultrafast -tune zerolatency -c:a aac -ar 44100 -b:a 96k -f flv rtmp://127.0.0.1:1935/live/stream
参数解释
-re 要求推流1s视频=1s推流
-i 视频名称
-c:v 视频编码器选H.264
-preset ultrafast 编码速度优先级选择最快cpu占用低的
-tune zerolatency 优化参数 为低延迟直播设置
-c:a 音频编码格式AAC
-ar 音频采样率
-b:a 音频码率
-f 输出的封装格式为flv
rtmp:填nodejs的rtmp协议通信ip:port/路由路径




评论已关闭