Windows客户端使用ffmpeg和command指令

文档背景

工作中需要做一个windows客户端程序,需要对视频文件做对应的处理。刚好ffmpeg是高效且开源的工具,于是综合百度,和自己的理解,对实战需要的内容进行记录。

1、ffmpeg是一个指令型语言

因为ffmpeg是一个基于shell脚本运行的语言,需要输入对应的指令才可以对视频文件进行处理。所以不管是前端还是后端,都需要利用cmd指令去操作。

客户端使用shell的工具

import _ from 'lodash'
import shell from 'any-shell-escape'
import child_process from 'child_process'

function runShellCommand(arr) {
  return new Promise((resolve, reject) => {
    const command = shell(arr)
    exec(command, (err) => {
      if (err) {
        reject(err)
      } else {
        resolve()
      }
    })
  })
}

function runShellCommandString(str) {
  return new Promise((resolve, reject) => {
    exec(str, (err) => {
      if (err) {
        reject(err)
      } else {
        resolve()
      }
    })
  })
}

2、ffmpeg合并视频

百度了一下,合并视频大约有三种方法

  • 第一种,直接合并 ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c copy merge.ts
  • 第二种,通过txt文件做索引文件来合并视频.
    首先新建一个index.txt文件,输入文件内容 file video01.ts \n file video02.ts以此类推你想合并的视频名称。输入指令 ffmpeg -f concat -i filelist.txt -c copy output.avi
  • 第三种,用得少,不管

3、实战

直接转载一篇实战文档: https://zhuanlan.zhihu.com/p/402824002

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值