You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安卓手机摄像头直接推流至RTMP Nginx服务器方案咨询

安卓摄像头直接推流到Nginx RTMP服务器方案

优先方案:Ionic-React + Capacitor

可以借助Capacitor社区的RTMP推流插件实现,核心是将密钥嵌入推流URL路径中:

步骤1:安装适配插件

选择支持RTMP推流的Capacitor插件,执行安装命令:

npm install @capacitor-community/rtmp-streaming
npx cap sync

步骤2:实现推流逻辑

在React组件中调用插件API,把密钥作为推流URL的一部分传入(your-secret-stream-key就是你需要添加的密钥):

import { RtmpStreaming } from '@capacitor-community/rtmp-streaming';

// 启动摄像头推流
const startCameraStream = async () => {
  try {
    await RtmpStreaming.start({
      url: 'rtmp://your-nginx-server-ip/live/your-secret-stream-key',
      camera: 'back', // 可选'front'切换前置摄像头
      videoBitrate: 1000000, // 1Mbps,可根据网络状况调整
      fps: 30,
      audioBitrate: 128000
    });
    console.log('推流已启动');
  } catch (err) {
    console.error('推流启动失败:', err);
  }
};

// 停止推流
const stopCameraStream = async () => {
  await RtmpStreaming.stop();
  console.log('推流已停止');
};

原生Java方案(基于rtmp-rtsp-stream-client-java库)

该库无需单独设置密钥参数,直接将密钥整合到推流URL的路径部分即可,具体实现如下:

核心代码示例

import com.pedro.rtplibrary.rtmp.RtmpCameraClient;
import com.pedro.rtplibrary.util.CameraHelper;
import com.pedro.encoder.input.video.CameraOpenException;

private RtmpCameraClient rtmpClient;

// 初始化RTMP推流客户端
private void initRtmpStream() {
  rtmpClient = new RtmpCameraClient.Builder()
      .setContext(this)
      // 密钥嵌入URL的路径段
      .setUrl("rtmp://your-nginx-server-ip/live/your-secret-stream-key")
      .setCamera(CameraHelper.CAMERA_BACK) // 切换前置摄像头用CAMERA_FRONT
      .setVideoResolution(com.pedro.encoder.input.video.VideoConfig.Resolution.Resolution720p)
      .setVideoBitrate(1000 * 1024)
      .setFps(30)
      .build();
}

// 启动推流
public void startStreaming() {
  try {
    if (!rtmpClient.isStreaming()) {
      rtmpClient.startStream();
    }
  } catch (CameraOpenException e) {
    e.printStackTrace();
  }
}

// 停止推流
public void stopStreaming() {
  if (rtmpClient.isStreaming()) {
    rtmpClient.stopStream();
  }
}

注意事项

  • 确保你的Nginx RTMP服务器配置中,对应的应用(比如示例中的live)已开启live on;配置,才能正常接收推流请求。
  • 这里的密钥逻辑和OBS推流一致,本质是通过URL路径区分不同的推流流。

内容的提问来源于stack exchange,提问作者Wayne Tun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 11:45:29