Python调用FFmpeg从视频中提取指定帧的方法

小满
小满
发布时间:2026-10-13| 6人浏览过
原创

本文介绍如何利用Python结合FFmpeg工具从视频文件中提取指定时间点的图像帧。详细解析了FFmpeg命令行中-i、-ss、-t、-f等关键参数的含义,并提供了基于os.popen3和os.system的Python实现代码示例,帮助用户掌握视频处理中的基础抽帧技巧。

具体实现方式如下所示:

FFmpeg中文文档参考地址为:http://linux.51yip.com/search/ffmpeg

执行命令示例:ffmpeg -i test_baofeng.wmv -y -f image2 -ss 00:00:03 -vframes 1 myframe.jpg

另一条命令示例:ffmpeg -i test.mp4 -y -f mjpeg -ss 3 -t 1 test1.jpg

-f fmt:强制指定输出格式为fmt

-I filename:指定输入文件名为filename

-y:当输出文件已存在时,直接覆盖输出文件

-t duration:设置录制时长,支持hh:mm:ss[.xxx]格式

-ss position:定位到指定时间点开始处理,支持[-]hh:mm:ss[.xxx]格式

在Python中调用FFmpeg,通常使用subprocess模块或ffmpeg/libav库

--------------------Python通过FFmpeg抽帧---------------------

import os, sys
from PIL import Image
#open a pipe from a command 
a, b, c = os.popen3("ffmpeg -i test.avi")
out = c.read()
dp = out.index("Duration: ")
duration = out[dp+10:dp+out[dp:].index(",")]
hh, mm, ss = map(float, duration.split(":"))
#total time ss
total = (hh*60 + mm)*60 + ss
for i in xrange(9):
 t = int((i + 1) * total / 10)
 # ffmpeg -i test.mp4 -y -f mjpeg -ss 3 -t 1 test1.jpg 
 os.system("ffmpeg -i test.avi -y -f mjpeg -ss %s -t 1 frame%i.jpg" % (t, i))
 
"""
num=int(total-3)
i=0
for t in xrange(0,num,3):
 i = i+1
 # ffmpeg -i test.mp4 -y -f mjpeg -ss 3 -t 1 test1.jpg 
 os.system("ffmpeg -i test.avi -y -f mjpeg -ss %s -t 1 %sframe%i.jpg" % (t,t, i))
"""

以上关于Python通过FFmpeg从视频中提取帧的方法即为全部内容,供各位参考,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。