node.js fluent-ffmpeg 桌面推流

server/2024/11/26 22:52:44/

1,安装fluent-ffmpeg,npm install fluent-ffmpeg

2,推流代码:

//stream.js
const ffmpeg = require('fluent-ffmpeg');

  const rtmpUrl = "rtmp://localhost:1935/live/desktop";
  //ffmpeg -f gdigrab -i desktop -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv -pix_fmt yuv420p rtmp://localhost:1935/live/desktop

  // 配置 ffmpeg
  const command = ffmpeg()
    .input('desktop') // 捕获桌面
    .inputFormat('gdigrab')  //windows
    //.inputOptions([
    //  '-framerate 30',
    //  '-video_size 1920x1080'
    //])
    .outputOptions([
      '-c:v libx264',
      '-preset ultrafast',
      '-tune zerolatency',
      '-f flv',
      '-pix_fmt yuv420p'
    ])
    .output(rtmpUrl);

  // 开始推流
  command.run();

  console.log('开始推流到:', rtmpUrl);
 


http://www.ppmy.cn/server/145168.html

相关文章

TCP vs UDP:如何选择适合的网络传输协议?

在网络通信中,TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种非常重要的传输层协议。它们各有特点,适用于不同类型的应用场景。本文将详细探讨TCP和UDP协议的结构、优缺点及应用&…

Android BottomNavigationView 底部导航栏使用详解

一、BottomNavigationView简介 BottomNavigationView是官方提供可以实现底部导航的组件,最多支持5个item,主要用于功能模块间的切换,默认会包含动画效果。 官方介绍地址:BottomNavigationView 二、使用BottomNavigationView a…

web组态软件

1、强大的画面显示web组态功能 2、良好的开放性。 开放性是指组态软件能与多种通信协议互联,支持多种硬件设备,向上能与管理层通信,实现上位机和下位机的双向通信。 3、丰富的功能模块。 web组态提供丰富的控制功能库,满足用户的测…

javaEE初阶——多线程(1)

文章目录 一些背景知识操作系统(OS)(计算机的大管家)操作系统的基本概念:市面上常见的操作操作系统: 关于前端与后端的介绍:(针对服务的体系架构)计算机是如何工作的&…

利用Google的OR-Tools解决智能调度问题

解决智能调度问题可以利用Google的OR-Tools库来实现。以下是一个详细的解决思路及解决方案: 一、定义问题 货物信息:包括重量、体积、提货坐标位置、提货时间范围、送货坐标位置、送货时间范围。 车辆信息:包括载重、车厢容积、每公里费用。…

React-useEffect的使用

useEffect react提供的一个常用hook,用于在函数组件中执行副作用操作,比如数据获取、订阅或手动更改DOM。 基本用法: 接受2个参数: 一个包含命令式代码的函数(副作用函数)。一个依赖项数组,用…

硬盘(HDD)与固态硬盘(SSD)详细解读

硬盘(HDD,Hard Disk Drive)和固态硬盘(SSD,Solid State Drive)是计算机中两种常见的存储设备。它们用于存储操作系统、应用程序、用户数据和其他信息。在现代计算机中,HDD 和 SSD 各有优劣&…

嵌入式系统与单片机工作原理详解

随着现代科技的发展,嵌入式系统已经深入到我们日常生活中的方方面面。无论是智能家居、汽车电子,还是工业控制、医疗设备,都离不开嵌入式系统的支持。而单片机作为嵌入式系统的核心组件,是实现这些功能的关键之一。本文将详细介绍…