python如何调用ffprobe_在Python脚本中使用FFProbe

在Python中使用os.system调用FFmpeg命令时遇到'ffprobe'未被识别的问题。解决方法是将FFmpeg的路径添加到系统环境变量PATH中。详细步骤包括编辑环境变量,确保FFmpeg可执行文件路径正确。另外,推荐使用subprocess代替os.system来更稳定地执行命令。
摘要由CSDN通过智能技术生成

I am fairly new to python, this is my first real project and I have come to a roadblock. What I have here is a .wmv file, I am using FFprobe to extract the duration in seconds from the .wmv file. When I run the following command in the CMD:

ffprobe -i Video2.wmv -show_entries format=duration -v quiet -of csv="p=0"

I get successful output.

However, when I use os.system, like this:

os.system('ffprobe -i Video2.wmv -show_entries format=duration -v quiet -of csv="p=0"')

I get the following output:

'ffprobe' is not recognized as an internal or external command, operable program or batch file.

This is very confusing and I haven't been able to find a fix to this exact problem online, any input would be very much appreciated.

解决方案

Python can't find ffprobe because it isn't in your environment variables. This youtube video shows how to properly install it, as does this wikihow page (method 2), which I'll quote from here:

Enabling FFmpeg in the Command Line

Click the Start button and right-click on Computer. Select Properties

from the right-click menu. In the System window, click on the

“Advanced system settings” link in the left frame.

Click the Environmental Variables button in the System Properties

window. It will be located at the bottom of the window.

Select the PATH entry in the "User variables" section. This is located

in the first frame in the Environmental Variables window. Click the

Edit button. In the “Variable value” field, enter ;c:\ffmpeg\bin after

anything that's already written there. If you copied it to a different

drive, change the drive letter. Click OK to save your changes. If

anything is entered incorrectly in this screen, it could cause Windows

to be unable to boot properly. If there is no PATH entry in the "User

variables" setting, click the New button and create one. Enter PATH

for the variable name. This method will enable FFmpeg for the current

user. Other Windows users will not be able to run it from the command

line. To enable it for everyone, enter ;c:\ffmpeg\bin in the PATH

entry in "System variables". Be very careful not to delete anything

that is already in this variable.

Open the command prompt. Enter the command “ffmpeg –version”. If the

command prompt returns the version information for FFmpeg, then the

installation was successful, and FFmpeg can be accessed from any

folder in the command prompt.

If you receive a “libstdc++ -6 is

missing” error, you may need to install the Microsoft Visual C++

Redistributable Package, which is available for free from Microsoft.

I hope that helps.

Just a side note, I don't think that os.system is the recommended way of calling the command line like that any more.

I'd recommend something more like this using subprocess instead (adapted from code here):

import subprocess

import shlex

import json

def get_duration(file_path_with_file_name):

cmd = 'ffprobe -show_entries format=duration -v quiet -of csv="p=0"'

args = shlex.split(cmd)

args.append(file_path_with_file_name)

# run the ffprobe process, decode stdout into utf-8 & convert to JSON

ffprobe_output = subprocess.check_output(args).decode('utf-8')

ffprobe_output = json.loads(ffprobe_output)

return ffprobe_output

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值