利用Python子进程 subprocess模块和ffmpeg转化视频为图片

动机

刚刚有个需求:将一个文件下的视频的所有帧转化为对应图片.经过查找通过ffmpeg相关指令能实现将一个视频转化为对应图片,但在多个文件下操作几千个视频,涉及到文件操作指令.在终端上写一两个命令无法完成操作.写一个shell脚本肯定能完成这个任务,但是shell一点也没接触过,短时间内也不想研究,经过多番查找,发现python下一个subprocess模块可以封装运行终端指令.

简要介绍

subprocess

subprocess包主要功能是执行外部的命令和程序,正好可以运行终端命令,这点上和shell功能类似.我用了subprocess.call()函数来调用执行外部命令,在主程序中启动一个子进程运行外部指令,父进程等待子进程完成后,返回退出信息,父进程执行后续程序.简单指令如下:

subprocess.call(strcmd, shell=True)

strcmd表示终端命令,例如”ls”. shell = True表示Python将先运行一个shell,再用这个shell来解释这整个字符串。

ffmpeg

ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,其功能很强大,一条指令就可以完成简单的视频功能需求.例如将一个视频所有帧转化为对于图片指令如下:

ffmpeg -i 00001.
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值