fluent-ffmpeg在electron框架中实现推流

需要准备这几个东西
electron框架
ffmpeg.exe应用程序 链接:https://pan.baidu.com/s/1TyzYlWG0p7cxpqrzziVRCA  提取码:ofd2(也可自行去官网下载)
fluent-ffmpeg插件
一个rtmp流地址

首先要做以下几步操作
1.将ffmpeg.exe文件放到electron项目文件夹中
2.安装插件和electron框架并设置推流地址相关的代码(electron相关的配置我之前的文章有),通过node的path模块找到第一步放的ffmpeg文件。ffmpeg是需要命令行来实现的,electron就可以使用命令行这里我通过fluent-ffmpeg插件来实现ffmpeg推送实时音频的功能。(当然也可以直接用node的子进程来实现https://blog.csdn.net/qq_40816649/article/details/103203263

更多的ffmpeg和fluent-ffmpeg可以查看官方文档http://ffmpeg.org/ -- https://github.com/fluent-ffmpeg/node-fluent-ffmpeg

const {
  app,
  BrowserWindow,
  ipcMain,
  Menu}            = require('electron');
const ffmpeg       = require("fluent-ffmpeg");
const path         = require('path')

function connectRTMP(audio) {//连接rtmp流
  const ffmpegPath = path.join(__dirname, './ffmpeg.exe')
  command = ffmpeg()
    .setFfmpegPath(ffmpegPath)
    .input(`audio=${audio}`)
    .inputFormat("dshow")
    .addOptions([
      "-vcodec libx264",
      "-preset ultrafast",
      "-acodec aac",
      "-pix_fmt yuv422p"
    ])
    .format("flv")
    .output('rtmp://xxxxxxxxxx', {
      end: true
    })
    .on("start", function (commandLine) {
      console.log("commandLine: " + commandLine);
      win.webContents.send('isStart');//推流成功
    })
    .on("error", function (err, stdout, stderr) {
      win.webContents.send('isError');//推流失败
    })
    .on("end", function () {
      
    });
  command.run();
}

3.推流之后可以通过可以通过vlc播放该流地址来查看是否推流成功

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值