首页 > 其他分享 >electron视频音频处理简单说明

electron视频音频处理简单说明

时间:2024-11-16 08:46:51浏览次数:1  
标签:视频 console mediaDevices 音频 sources electron navigator audio

属于一个总结,一般我们都是使用navigator.mediaDevices.getUserMedia+desktopCapturer 集成,但是getUserMedia 对于音频的捕捉是有一些问题的(audio 为true 会有bug)

基于session setDisplayMediaRequestHandler

推荐基于此方法,可以灵活的实现音视频的捕捉处理,

  win.webContents.session.setDisplayMediaRequestHandler((stream, callback) => {
    // 此处可以进行一些ui 选择,或者业务处理(与渲染进程的通信,可以包含ui信息,不同的source 支持的能力不太一样)
    desktopCapturer.getSources({ types: ['screen','window'] }).then((sources) => {
      // Grant access to the first screen found.
      console.log("sources",sources);
      callback({ video: sources[0], audio: 'loopback' })
    })
  }, { useSystemPicker: true })

基于自定义getDisplayMedia

window.navigator.mediaDevices.getDisplayMedia = () => {
  return new Promise(async (resolve, reject) => {
    try {
      alert("navigator.mediaDevices.getDisplayMedia");
      const sources = await ipcRenderer.invoke("get-sources");
      console.log("sources", sources);
      console.log("sources[0]", sources[0]);
      // 注意此模式中audio当为chromeMediaSource 只能为false,否则会有异常问题,应该属于chrome 的bug
      const stream = await window.navigator.mediaDevices.getUserMedia({
        audio: false,
        video: {
          mandatory: {
            chromeMediaSource: "desktop",
            chromeMediaSourceId: sources[0].id,
          },
        },
      });
      stream.getTracks().forEach(track => {
        console.log("track",track);
      });
      resolve(stream);
    } catch (err) {
      reject(err);
    }
  });
};

说明

以上是一个简单说明,因为原生navigator.mediaDevices.getUserMedia audio 为true 会有异常问题,通过以上可以解决问题

参考资料

https://www.electronjs.org/docs/latest/api/desktop-capturer

https://github.com/electron/electron/pull/30702

标签:视频,console,mediaDevices,音频,sources,electron,navigator,audio
From: https://www.cnblogs.com/rongfengliang/p/18442748

相关文章

  • ffmpeg视频编码
    一、视频编码流程使用ffmpeg解码视频帧主要可分为两大步骤:初始化编码器和编码视频帧,以下代码以h264为例1.初始化编码器初始化编码器包含以下步骤:(1)查找编码器videoCodec=avcodec_find_encoder_by_name(videoCodecName);if(!videoCodec){release();retur......
  • Android 音频采集 - AudioRecord
    一、概述AudioRecord是Android平台比较重要的类,也是Java接口中比较偏底层(平台)的接口,可以通过它从平台的音频输入硬件来获取原始音频PCM数据。它的工作原理是要需要通过应用侧轮询调用read接口来驱动,每调用一次,系统就会从硬件采集到的数据填充一次,至于传递数据的......
  • 音视频基础能力之 iOS 视频篇(一):视频采集
    涉及硬件的音视频能力,比如采集、渲染、硬件编码、硬件解码,通常是与客户端操作系统强相关的,就算是跨平台的多媒体框架也必须使用平台原生语言的模块来支持这些功能本系列文章将详细讲述移动端音视频的采集、渲染、硬件编码、硬件解码这些涉及硬件的能力该如何实现本文为该系......
  • 视频编码基础入门
    文章目录前言一、视频编码的目标二、视频编码基本流程1.采样与颜色空间转换2.变换编码(例如DCT)3.量化4.熵编码5.运动补偿和帧间预测6.编码输出三、视频编码的关键技术1.帧类型2.GOP(GroupofPictures)结构3.比特率控制四、常见的视频编码标准H.264(AVC)H.265......
  • 基于python+django的Hadoop的短视频数据分析的设计与实现
    前言基于python+django的Hadoop短视频数据分析系统可充分挖掘短视频数据价值。从各大短视频平台接口等多种数据源采集数据,利用Hadoop分布式存储海量短视频的基本信息、用户信息、播放量、点赞数、评论内容等。借助python数据分析库和django框架,清洗、预处理......
  • Android15音频进阶之input调节CarAudioService音量过程(九十四)
    简介:CSDN博客专家、《Android系统多媒体进阶实战》一书作者新书发布:《Android系统多媒体进阶实战》......
  • 杭州市公安局打造“清风明月说反诈”系列视频,守好市民“钱袋子”
    为进一步加强辖区群众的反诈防骗意识,提升反诈宣传效率。杭州市公安局推出“清风明月说反诈”系栏目,借助有言的AIGC视频生成能力,高效率制作多场景的反诈宣传视频,升级传统视频制作方式,展示了AI技术在反诈宣传科普以及公共安全社会治理中的巨大价值。没有使用AI视频工具之前,传统......
  • 基于米尔NXP i.MX93开发板OpenCV的相机捕捉视频进行人脸检测
    本篇测评由优秀测评者“eefocus_3914144”提供。 本文将介绍基于米尔电子MYD-LMX93开发板(米尔基于NXPi.MX93开发板)的基于OpenCV的人脸检测方案测试。OpenCV提供了一个非常简单的接口,用于相机捕捉一个视频(我用的电脑内置摄像头)1、安装python3-opencvaptinstallpython3-......
  • NVR接入录像回放平台EasyCVR视频设备轨迹回放平台分发webrtc流地址无法播放是什么原因
    在现代安防领域,视频监控技术扮演着越来越重要的角色。EasyCVR视频汇聚平台以其卓越的兼容性和灵活性,为用户提供了一个强大的视频监控解决方案。该平台不仅能够满足基本的视频监控需求,还通过一系列高级功能,如视频转码、快照、告警处理等,极大地提升了监控系统的智能化水平和操作便捷......
  • 无插件H5播放器EasyPlayer.js网页web无插件播放器选择全屏时,视频区域并没有全屏问题的
    EasyPlayer.jsH5播放器,是一款能够同时支持HTTP、HTTP-FLV、HLS(m3u8)、WS、WEBRTC、FMP4视频直播与视频点播等多种协议,支持H.264、H.265、AAC、G711A、MP3等多种音视频编码格式,支持MSE、WASM、WebCodec等多种解码方式,支持Windows、Linux、Android、iOS全平台终端的H5播放器,使用简单......