使用ffmpeg在python中获取视频时长
我已经在PC上使用pip
ffprobe命令安装了ffprobe,并从此处安装ffmpeg 。
但是,我仍然无法运行此处列出的代码。
我尝试使用以下代码失败。
SyntaxError:第12行的GetVideoDurations.py文件中的非ASCII字符’\ xe2’,但未声明编码;有关详细信息,请参见
http://python.org/dev/peps/pep-0263/
有人知道怎么了吗?我没有正确引用目录吗?我是否需要确保.py和视频文件位于特定位置?
import subprocessdef getLength(filename):
result = subprocess.Popen(["ffprobe", "filename"],
stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
return [x for x in result.stdout.readlines() if "Duration" in x]
fileToWorkWith = 'C:\Users\PC\Desktop\Video.mkv'
getLength(fileToWorkWith)
抱歉,这个问题有点基本。我需要的是能够遍历一组视频文件并获取它们的开始时间和结束时间。
谢谢!
回答:
不需要遍历的输出FFprobe
。有一个简单的命令仅返回输入文件的持续时间:
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 <input_video>
您可以使用以下方法来获取持续时间:
def get_length(input_video): result = subprocess.run(['ffprobe', '-v', 'error', '-show_entries', 'format=duration', '-of', 'default=noprint_wrappers=1:nokey=1', input_video], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
return float(result.stdout)
以上是 使用ffmpeg在python中获取视频时长 的全部内容, 来源链接: utcz.com/qa/400402.html