首页 > 编程语言 >【nodejs】批量获取文件的时长

【nodejs】批量获取文件的时长

时间:2023-10-28 19:55:05浏览次数:32  
标签:err 批量 nodejs fileList 获取 Promise file duration 时长

因为ffmpeg.ffprobe是异步的,需要使用promise同步,然后Promise.all将所有的Promise执行结果处理后返回

  /**
   * 获取文件列表时长(同步获取返回)
   * @param {Object} fileList
   */
  async getFileDuration(fileList) {
    // 初始化
    let promises = fileList.map(file => {
      return new Promise((resolve, reject) => {
        ffmpeg.ffprobe(file, (err, data) => {
          if (err) {
            reject(`无法获取视频信息: ${err}`);
          } else {
            resolve(data.format.duration);
          }
        });
      });
    });
    
    return Promise.all(promises)
      .then(res => {
          let durationList = [];
          fileList.forEach((file, index) => {
            durationList.push({name: file, time: Math.ceil(res[index])});
          });

        return durationList;
      });
  }

 

调用获取结果

  let duration = await Services.get('file').getFileDuration(fileList);
  console.log(fileList, duration);

 

标签:err,批量,nodejs,fileList,获取,Promise,file,duration,时长
From: https://www.cnblogs.com/lanse1993/p/17794528.html

相关文章

  • mysql大批量删除数据,工作记录
    在10万记录的三张关系表中删除相对应的数据,三张表为层级嵌套关系优化查询目的:减少mysql数据库慢查询导致的长时间占据锁的情况出现优化方向:将慢sql改为多次执行的快sql,避免长时间占用mysql资源情况出现多表查询会用到的几种方式连表查询SELECTevent_data.idFROMevent......
  • Error: EPERM: operation not permitted, mkdir 'C:\Program Files\nodejs\cache\
    使用下面命令创建react项目爆出的错误npxcreate-react-appreact-basic显示nodejs里面的文件权限不够,需要进行文件夹的权限更改,改为完全控制就可以了。 ......
  • Java 音频处理,音频流转音频文件,获取音频播放时长
    1.背景最近对接了一款智能手表,手环,可以应用与老人与儿童监控,环卫工人监控,农场畜牧业监控,宠物监控等,其中用到了音频传输,通过平台下发语音包,发送远程命令录制当前设备音频并将音频分包传输到服务器上生成音频文件等。其中关于音频的一些简单操作封装成了工具包。2.音频工具包引入jaud......
  • 新人报道+js批量混淆
    做过游戏开发很多年,现在转型做展厅UI和中控开发,技术栈包括flashunityH5pythonc#wpf 今天分享一个js项目批量混淆的脚本@echooff::设置压缩JS文件的根目录,脚本会自动按树层次查找和压缩所有的JSSETJSFOLDER=laya\assets2\jsecho正在查找JS文件chdir/d%JSFOLDER%for......
  • 批量仅176元!米尔AM62x核心板助力新一代工业4.0升级
    米尔AM62x核心板176元起 续写AM335x经典 在过去的十几年中,TISitara系列推出了很多优秀的处理器,其中在工业、电力、医疗等领域有着广泛应用的AM335x系列处理器,引领工业市场从MCU向MPU演进,帮助产业界从ARM9迅速迁移至高性能Cortex-A8处理器,成为一代经典!随着工业4.0的发展,人机......
  • 如何使用nodejs对接【企查查开放平台API服务】
    下面分享一下如何对接企查查API接口相关内容。API服务对接流程:1、登录|注册:先打开企查查开放平台网站(https://openapi.qcc.com),菜单栏中右上角【登录|注册】;2.打开API服务列表通过顶部导航菜单【API】,可以查看所有服务列表,里面包含了很多API接口,此处不具体介绍,有兴趣的可以自己......
  • 【Azure Storage Account Table】询问批量将存储账户中的表嵌入另一个账户中的办法
    问题描述询问批量将存储账户中的表嵌入另一个账户中的办法? 问题解答方式一:使用 AzCopy 使用Azcopy做表格的导入导出,注意您需要使用Azcopy7.3版本来实现对Table的操作,可以选择导出到Blob中,这样导出的数据不会保存在本地,以及该指定支持并发导出。从表存储导出数据: https://le......
  • excel 2DB---excel数据批量写入数据库
    Excel2DB是一款读取excel数据自动入库的软件,支持读取xls、xlsx、csv格式。优点:1、绿色免安装2、无需单独打开软件运行、可直接cmd、rpa、python等第三方软件调用3、存储速度快、大数据读取4、可以添加自定义字段5、一次配置长期有效6、支持sheet分别(并表)存放7、支持自......
  • Oracle批量插入和更新
    一、驱动。使用Oracle.ManagedDataAccess.Client二、原理。利用OracleCommand的ArrayBindCount属性设置批量大小。三、实现函数使用的实体是efcore生成的实体,其字段命名法是帕斯卡命名法。1.辅助函数publicstaticDataTableToDataTable<T>(List<T>items){......
  • graalvm 23.1.0 独立nodejs docker 镜像&简单试用
    graaljsdocker镜像很简单就是下载官方包,集成下,然后进行一些简单的配置DockerfileFROMdebian:bullseye-backportsLABELauthor="rongfengliang"LABELemail="[email protected]"WORKDIR/opt/RUN/bin/cp/usr/share/zoneinfo/Asia/Shanghai/etc/localtime\&&am......