Python FFmpeg 安装使用教程

文章目录

什么是 FFmpeg?

  • FFmpeg 是一个开源的多媒体框架,可以处理音频、视频和其他多媒体文件和流。它几乎支持所有已知的音视频格式,并提供了丰富的命令行工具来处理多媒体内容。

主要功能包括:

  • 转码(例如从 AVI 到 MP4)
  • 格式转换(例如从 MP3 到 WAV)
  • 音频和视频的剪辑、合并、过滤等操作

Windows 下载安装

  • release-full 版本会比下面的 xxx-full_build 版本更新。
  • 同一个版本带 shared 的还是不带 shared 功能完全相同,带 shared 的里面,多了 include、lib 目录。把 FFmpeg 依赖的模块包单独的放在的 lib 目录中。ffmpeg.exe,ffplay.exe,ffprobe.exe 作为可执行文件的入口,文件体积很小,他们在运行的时候,如果需要,会到 lib 中调用相应的功能。

下载解压安装

配置环境变量

  • 可以参考网上教程,将 bin 目录配置到环境变量中
  • 打开控制台验证环境变量是否配置正确

使用案例

使用 ffmpeg-python

  • 安装依赖:pip install ffmpeg-python

转换视频格式

  • 以下示例将一个 MP4 文件转换为 AVI 格式
Python 复制代码
import ffmpeg

input_file = "input.mp4"
output_file = "output.avi"

ffmpeg.input(input_file).output(output_file).run()

视频剪辑

  • 将视频剪辑到指定的时间段
Python 复制代码
import ffmpeg

input_file = "input.mp4"
output_file = "output.mp4"

ffmpeg.input(input_file, ss=30, t=10).output(output_file).run()
  • 这个例子将从第 30 秒开始,截取 10 秒钟的视频片段并保存。

添加字幕

  • 使用 FFmpeg 将字幕文件嵌入视频中
Python 复制代码
import ffmpeg

input_file = "input.mp4"
subtitle_file = "subtitle.srt"
output_file = "output_with_subtitles.mp4"

ffmpeg.input(input_file).output(output_file, vf=f"subtitles={subtitle_file}").run()

使用 subprocess.run 执行

视频格式转换

  • 将一个 MP4 视频文件转换为 AVI 格式
Python 复制代码
import subprocess

def convert_mp4_to_avi(input_file, output_file):
    # 使用 FFmpeg 将 MP4 文件转换为 AVI 文件
    command = [
        'ffmpeg', '-i', input_file,  # 输入文件
        output_file  # 输出文件
    ]
    
    # 运行 FFmpeg 命令
    subprocess.run(command, check=True)

# 示例使用
input_video = 'input.mp4'
output_video = 'output.avi'

convert_mp4_to_avi(input_video, output_video)
print(f"视频已转换为 {output_video}")

其它问题

ffmpeg 不是内部或外部命令,也不是可运行的程序

  • 这是由于环境变量配置问题,可以检查运行配置是否使用了配置的环境变量。
  • 如果没有看到查询到自己配置的环境变量,可以清空 IDE 缓存重启或者重启电脑。

个人简介

👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.

🚀 我对技术的热情是我不断学习和分享的动力。我的博客是一个关于Java生态系统、后端开发和最新技术趋势的地方。

🧠 作为一个 Java 后端技术爱好者,我不仅热衷于探索语言的新特性和技术的深度,还热衷于分享我的见解和最佳实践。我相信知识的分享和社区合作可以帮助我们共同成长。

💡 在我的博客上,你将找到关于Java核心概念、JVM 底层技术、常用框架如Spring和Mybatis 、MySQL等数据库管理、RabbitMQ、Rocketmq等消息中间件、性能优化等内容的深入文章。我也将分享一些编程技巧和解决问题的方法,以帮助你更好地掌握Java编程。

🌐 我鼓励互动和建立社区,因此请留下你的问题、建议或主题请求,让我知道你感兴趣的内容。此外,我将分享最新的互联网和技术资讯,以确保你与技术世界的最新发展保持联系。我期待与你一起在技术之路上前进,一起探讨技术世界的无限可能性。

📖 保持关注我的博客,让我们共同追求技术卓越。

相关推荐
数据智能老司机3 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机4 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机4 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机4 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i4 小时前
drf初步梳理
python·django
每日AI新事件4 小时前
python的异步函数
python
这里有鱼汤5 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook15 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室15 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三16 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试