Python 脚本中的 FFmpeg

FFmpeg 是快进运动图像专家组的缩写。 它是一个开源项目,提供了ffmpeg、ffplay、ffprobe等工具来处理多媒体文件。

FFmpeg 是一个命令行实用程序,可帮助转换视频/音频格式、压缩视频、从视频中提取音频、创建 GIF、剪切视频等。

本篇文章将介绍在Python中使用FFMPEG命令。


安装 FFmpeg Python 包

首先,您必须在系统上安装 FFmpeg。 以管理员身份打开命令提示符并运行以下命令以使用 choco 安装 FFmpeg。

bash 复制代码
choco install ffmpeg

接下来,使用 Python 包管理器工具 pip 安装 ffmpeg-python 包。

在提示符中运行以下命令以使用 pip 安装软件包。

bash 复制代码
pip install ffmpeg-python

输出:

bash 复制代码
Successfully built ffmpeg
Installing collected packages: ffmpeg
Successfully installed ffmpeg-1.4

在 Python 中使用 FFmpeg 修剪视频

由于我们已经在系统上配置了 FFmpeg,因此让我们使用一些 FFmpeg 命令来处理 Python 中的视频。

以下示例将视频 Pencil.mp4 从 5 秒剪切到 10 秒,并将其保存为 output.mp4。

python 复制代码
import ffmpeg
video = ffmpeg.input('Pencil.mp4')
video = video.trim(start=5, duration=5)
video = ffmpeg.output(video, 'output.mp4')
ffmpeg.run(video)

Python中使用FFmpeg获取视频的宽度和高度

以下示例在 Python 中打印指定视频的宽度和高度。

python 复制代码
import ffmpeg
probe = ffmpeg.probe('output.mp4')
video = next((stream for stream in probe['streams'] if stream['codec_type'] == 'video'), None)
width = int(video['width'])
height = int(video['height'])
print("Width:", width)
print("Height:", height)

输出:

bash 复制代码
Width: 1280
Height: 720

在 Python 中使用 FFmpeg 保存视频缩略图

您还可以使用 Python 中的 FFmpeg 保存视频的缩略图。

以下示例从视频中的时间 4 秒生成宽度 500px 的缩略图。

python 复制代码
import ffmpeg
video = ffmpeg.input('Pencil.mp4', ss=4)
video = video.filter('scale', 500, -1)
video= ffmpeg.output(video,'output.png', vframes=1)
ffmpeg.run(video)

高度由纵横比自动确定。

输出图像:


在 Python 中使用 FFmpeg 翻转视频

在 Python 中,您可以使用 ffmpeg.hflip() 水平翻转视频,使用 ffmpeg.vflip() 垂直翻转视频。

水平翻转视频:

python 复制代码
import ffmpeg
video = ffmpeg.input('Pencil.mp4')
video = ffmpeg.hflip(video)
video = ffmpeg.output(video, 'horizontal.mp4')
ffmpeg.run(video)

垂直翻转视频:

python 复制代码
import ffmpeg
video = ffmpeg.input('Pencil.mp4')
video = ffmpeg.vflip(video)
video = ffmpeg.output(video, 'vertical.mp4')
ffmpeg.run(video)

FFmpeg 是一个对多媒体文件执行不同操作的便捷工具。 它可以快速修剪视频、更改文件格式、提取音频、创建 GIF 等。

至此,您应该已经清楚地了解如何在Python脚本中使用FFmpeg命令。 我们希望本教程对您有所帮助。

相关推荐
平常心的技术小牛3 小时前
Qt-快速上手-QMenuBar
开发语言·qt
青 春 记 忆3 小时前
零基础入门Python11|Git实战:为任务管理器建立版本历史
开发语言·git·vscode·python·python3.11
Python私教3 小时前
多个项目怎么安全合并?先适配,再切换
后端·python·架构
余额瞒着我当琳5 小时前
C++--深拷贝三件套 + swap + 写时拷贝 + vector 扩容 + reserve
java·开发语言·c++
坐吃山猪5 小时前
WebClient内存配置解析
开发语言·springboot·webflux
北斗落凡尘5 小时前
LangGraph 入门实战(12)--使用MCP
后端·python·langchain
jdksjw6 小时前
同步与异步、阻塞与非阻塞、多线程、协程超详细讲解(Python并发编程从入门到精通)
开发语言·python
Zach_菠萝侠6 小时前
【DeepSeek Harness 研究】进化方向4:安全加固 思考、设计与实现
开发语言·安全·deepseek
Mike_Zhang6 小时前
使用python统计FreeSWITCH呼叫并发
python·freeswitch
SL-staff6 小时前
技术实践:HR如何用JVS-Logic可视化编排实现考勤数据同步(含节点配置与异常处理)
开发语言·python·低代码·钉钉·可视化编排·jvs-logic·hr技术