windows下python subprocess.call使用ffmpeg的问题记录

最近在尝试别人代码时遇到了一些问题,经过查找资料算是解决了,在此记录一下。

有这么一段代码是将视频转换成图片,代码具体如下:

call([
    'ffmpeg',
    '-nostats',
    '-i', videopath,
    '-qscale:v', '3',
    fileformat
        ])

不过在运行的时候总是报 FileNotFoundError: [WinError 2] 系统找不到指定的文件 的错误。

看到网上有的在报这种错误的时候加上参数'cmd'或者将shell设置为True都可以解决。不过按照这种方式后,程序能够运行但是文件夹内没有输出的文件。所以这些方式对该问题无效,但在其他类似情况或许可以借鉴(比如用call调用其他的程序)。

解决方法:

参考博客:https://www.5axxw.com/questions/content/geq34l

在该网页中,有人提到这里找不到文件是指找不到ffmpeg可执行文件,所以解决方案就是下载ffmpeg的可执行文件,然后将路径放入就可以了。

具体的下载链接是:https://github.com/BtbN/FFmpeg-Builds/releases

从这里面找到适合自己电脑的文件,然后下载后解压。并将代码修改成下面的样子,程序就可以执行了。

call([
    'D:/ffmpeg-n4.4-78-g031c0cb0b4-win64-lgpl-4.4/bin/ffmpeg.exe',
    '-nostats',
    '-i', videopath,
    '-qscale:v', '3',
    fileformat
        ])

其他的参考博客:

https://blog.csdn.net/qq_38161040/article/details/91654183

 

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值