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命令。 我们希望本教程对您有所帮助。

相关推荐
西柚小萌新2 小时前
【深入浅出PyTorch】--上采样+下采样
人工智能·pytorch·python
rit84324992 小时前
基于MATLAB的模糊图像复原
开发语言·matlab
fie88892 小时前
基于MATLAB的声呐图像特征提取与显示
开发语言·人工智能
_extraordinary_3 小时前
Java SpringMVC(二) --- 响应,综合性练习
java·开发语言
shut up4 小时前
LangChain - 如何使用阿里云百炼平台的Qwen-plus模型构建一个桌面文件查询AI助手 - 超详细
人工智能·python·langchain·智能体
宝贝儿好4 小时前
【python】第五章:python-GUI编程
python·pyqt
@。1244 小时前
对于灰度发布(金丝雀发布)的了解
开发语言·前端
闲人编程5 小时前
从多个数据源(CSV, Excel, SQL)自动整合数据
python·mysql·数据分析·csv·存储·数据源·codecapsule
hsjkdhs5 小时前
C++之多层继承、多源继承、菱形继承
开发语言·c++·算法
B站_计算机毕业设计之家5 小时前
推荐系统实战:python新能源汽车智能推荐(两种协同过滤+Django 全栈项目 源码)计算机专业✅
大数据·python·django·汽车·推荐系统·新能源·新能源汽车