微信小程序推流拉流live-pusher/live-player示例,使用本地搭建RTMP服务

我请说明下,微信小程序推流拉流live-pusher/live-player示例,使用本地搭建RTMP服务
最新回答
狂舞ギ炫尊

2026-10-19 18:04:01

微信小程序使用本地搭建RTMP服务实现推流拉流(live-pusher/live-player)的完整流程如下:

一、本地RTMP服务搭建
  1. 环境准备

    安装Node.js环境,确保npm可用。

    克隆开源仓库

    Node-Media-Server
    (或直接使用其代码)。

  2. 启动服务

    进入Node-Media-Server文件夹,执行以下命令:

    npm installnode index.js

    服务默认监听端口:

    RTMP协议:1935端口(用于推流)

    HTTP-FLV协议:8000端口(用于网页拉流)

  3. 验证服务

    使用工具(如OBS)推流至rtmp://本地IP:1935/live/STREAM_NAME,或通过后续步骤用小程序推流测试。

图:小程序开发接口设置(需开启实时音视频权限)二、小程序端配置与推流
  1. 前置条件

    注册微信小程序账号,在

    微信公众平台
    申请实时音视频流权限(个人账号可申请)。

    获取小程序的AppID,并在开发者工具中导入项目(选择仓库中的client文件夹)。

  2. 配置IP地址

    修改小程序页面中的服务器IP配置为本地局域网IP(如192.168.x.x),确保手机与电脑在同一网络。

    推流地址格式:rtmp://本地IP:1935/live/STREAM_NAME(STREAM_NAME可自定义)。

  3. 代码实现

    推流组件(live-pusher):

    <live-pusher url="rtmp://本地IP:1935/live/STREAM_NAME" mode="SD" autopush bindstatechange="onPushStateChange"/>

    拉流组件(live-player):

    <live-player src="http://本地IP:8000/live/STREAM_NAME.flv" mode="live" autoplay bindstatechange="onPlayStateChange"/>
  4. 真机调试

    在微信开发者工具中点击真机调试,使用手机扫描二维码启动小程序。

    确保本地RTMP服务已运行,且IP配置正确。

图:小程序推流操作界面(需填写服务器IP)三、网页端拉流测试
  1. 启动HTTP服务

    进入仓库中的web-client文件夹,执行以下命令:

    # 若已全局安装http-serverhttp-server -p 8080# 否则通过npx启动npm installnpx http-server -p 8080
  2. 访问网页

    浏览器打开

    http://localhost:8080
    ,输入流名称(如STREAM_NAME)并点击开始。

    若成功,网页将显示小程序推送的视频流。

图:网页端拉流测试结果四、腾讯云实时流媒体服务对比
  1. 优势

    低延迟:腾讯云采用UDP+RTMP或QUIC协议,延迟约400ms(优于TCP的1-2秒)。

    免费流量:新用户可申请20GB免费流量测试。

  2. 限制

    仅腾讯云服务支持UDP传输,自建RTMP服务必须使用TCP。

    其他云服务(如声网、阿里云)均基于TCP,延迟与自建服务相当。

  3. 适用场景

    对延迟敏感(如互动直播)→ 腾讯云。

    内部测试或低成本需求 → 自建RTMP服务。

五、常见问题解答
  1. 能否获取原始媒体数据流?

    不行:小程序环境禁止通过live-pusher获取原始数据(与HTML5的WebRTC不同),无法进行美颜、压缩等预处理。

  2. 网络波动导致延迟高?

    自建TCP服务在WiFi下可能达2秒延迟,建议优化网络环境或切换至腾讯云。

  3. 推流失败排查

    检查防火墙是否放行1935端口。

    确认手机与服务器在同一局域网(或配置公网IP及端口映射)。

六、完整代码与资源
  • GitHub开源示例:
    AJLoveChina/wechat-pusher-player
    (含详细配置说明及组件代码)
  • 腾讯云直播服务:
    登录 - 腾讯云
    (免费20GB流量申请入口)

通过以上步骤,可快速实现微信小程序与本地RTMP服务的推流拉流功能,并根据需求选择是否迁移至腾讯云以优化体验。