Python FFmpeg 安装使用教程

文章目录

  • 什么是 FFmpeg?
    • 主要功能包括:
  • `Windows` 下载安装
    • 下载解压安装
    • 配置环境变量
  • 使用案例
    • 使用 `ffmpeg-python` 库
      • 转换视频格式
      • 视频剪辑
      • 添加字幕
    • 使用 `subprocess.run` 执行
      • 视频格式转换
  • 其它问题
    • `ffmpeg` 不是内部或外部命令,也不是可运行的程序
  • 个人简介

什么是 FFmpeg?

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

主要功能包括:

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

Windows 下载安装

  • 打开 FFmpeg 官网下载

  • 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 格式
import ffmpeginput_file = "input.mp4"
output_file = "output.avi"ffmpeg.input(input_file).output(output_file).run()

视频剪辑

  • 将视频剪辑到指定的时间段
import ffmpeginput_file = "input.mp4"
output_file = "output.mp4"ffmpeg.input(input_file, ss=30, t=10).output(output_file).run()
  • 这个例子将从第 30 秒开始,截取 10 秒钟的视频片段并保存。

添加字幕

  • 使用 FFmpeg 将字幕文件嵌入视频中
import ffmpeginput_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 格式
import subprocessdef 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编程。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/443641.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虹软人脸 报错 Can‘t find dependent libraries

系列文章目录 文章目录 系列文章目录一、虹软人脸 报错 Can‘t find dependent libraries 一、虹软人脸 报错 Can‘t find dependent libraries 在项目中使用了 虹软 人脸识别SDK,环境一直出错。 错误: Can’t find dependent libraries 从错误信息来…

Arduino UNO R3自学笔记21 之 Arduino基础篇学习总结

注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。 前言:目前将Arduino的大多数基础内容学习了,做个总结。 1.编程语言 学习单片机,在面向单片机编程时,语言是最基础的&#…

Web前端入门

文章目录 前言1 Web前端概述1.1 网站和网页1.2 HTML语言1.3 网页的形成1.4 常用浏览器1.5 浏览器内核(渲染引擎)1.6 web标准 2 HTML标签2.1 开发工具2.2 HTML语法规则2.3 标签的关系2.4 HTML注释标签2.5 结构标签 3 常用标签3.1 标题标签3.2 段落标签3.3 换行标签3.…

HAL库常用的函数:

目录 HAL库: 1.GPIO常用函数: 1.HAL_GPIO_ReadPin( ) 2.HAL_GPIO_WritePin( ) 3.HAL_GPIO_TogglePin( ) 4.HAL_GPIO_EXTI_IRQHandler( ) 5.HAL_GPIO_EXTI_Callback( ) 2.UART常用函数: 1.HAL_U…

详细分析Spring Framework中 @ConditionalOnProperty的基本知识(附Demo)

目录 前言1. 基本知识2. Demo 前言 基本的Java知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新) 从实战中学习启发 1. 基本知识 Conditiona…

2025考研今天开始预报名!攻略请查收

2025年全国硕士研究生招生考试 今天起开始预报名 有什么流程?需要准备哪些信息? 这份考研报名攻略速查收 ↓↓↓ 全国硕士研究生招生考试报名包括网上报名和网上确认两个阶段: 网上预报名时间为10月9日至10月12日(每日9&#xff1…

虚幻引擎GAS入门学习笔记(二)

虚幻引擎GAS入门(二) 学习位置UE5.3 GAS入门教程重置版 小明 MVC框架与技能初始化 让一开始创建的蓝图的基础GameplayAbility蓝图继承我们写好的BaseGameplayAbility类 创建一个库函数,写一些常用的函数在里面第一个得到玩家与玩家控制器 获取角色面对目标的方向…

【优选算法】(第三十二篇)

目录 ⼆进制求和(easy) 题目解析 讲解算法原理 编写代码 字符串相乘(medium) 题目解析 讲解算法原理 编写代码 ⼆进制求和(easy) 题目解析 1.题目链接:. - 力扣(LeetCode&a…

双十一好物必买榜:数码好物推荐!

​双十一该入手一些好物来准备度过下一年,选择几款数码好物和工作都用得到的实用好物陪伴冬天是能够让自己更积极的迎接生活,能够让自己更开心满足的方式。适当的购物也是能够缓解工作压力,心情不好的方法,但依然要选择买回家不会…

团员申请书怎么写?这里归纳了一些模板

团员申请书怎么写?随着社会的快速发展和时代的进步,越来越多的青年人意识到加入团组织的重要性。作为新时代的青年,我们应当积极响应国家的号召,参与到团组织的建设中来。而想要成为共青团员,首先需要撰写一份规范的团…

Umi中的微前端

umi/max 内置了 Qiankun 微前端插件,它可以一键启用 Qiankun 微前端开发模式,帮助您轻松地在 Umi 项目中集成 Qiankun 微应用,构建出一个生产可用的微前端架构系统。 什么是微前端 微前端是一种多个团队通过独立发布功能的方式来共同构建现代…

golang grpc初体验

grpc 是一个高性能、开源和通用的 RPC 框架,面向服务端和移动端,基于 HTTP/2 设计。目前支持c、java和go,分别是grpc、grpc-java、grpc-go,目前c版本支持c、c、node.js、ruby、python、objective-c、php和c#。grpc官网 grpc-go P…

【牛客刷题实战】BC120 争夺前五名

大家好,我是小卡皮巴拉 文章目录 目录 牛客题目: BC120 争夺前五名 题目描述 输入描述: 输出描述: 示例1 示例2 解题思路: 具体思路: 题目要点: 完整代码: 兄弟们共…

python爬虫 - 数据提取

🌈个人主页:https://blog.csdn.net/2401_86688088?typeblog 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、数据类型及其对应的提取策略 (一)文本数据 &…

【设计模式】软件设计原则——开闭原则里氏替换单一职责

开闭原则内容引出 开闭原则 定义:一个软件实体,类,函数,模块;对扩展开放,对修改关闭。用抽象构建框架,用实现扩展细节。可以提高软件的可复用性和可维护性。 开发新功能时,尽量不修…

猿人学— 第一届第1题(解题思路附源码)

猿人学 — 第一届第1题(解题思路附源码) F12进入开发者工具—> 发现停止在debugger处 —> 右键点击Never pause here后下一步 翻页,抓包后发现请求携带page和m两个参数,page应该就是页数,m则需要逆向 依次查…

微服务中传递公共参数,在网关层header添加参数,各子微服务,openfeign,线程池等地方拿到网关传递过来的参数

需求: 网关层在header中添加参数,header-user_id1001,header-user_name小明 各个子微服务,可以通过openfeign,线程池等方式拿到上面的参数1 网关层 gateway添加需要传递的参数信息 import cn.hutool.core.net.URLEnco…

MySQL从0到1基础语法笔记(下)

博客主页:誓则盟约系列专栏:Java Web关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 多表问题分析: 部门数据可以直接删除,然后还有部分员工…

Python对PDF文件的合并操作

在处理 PDF 文件时,合并多个 PDF 文件为一个单一文件或者将某个单一文件插入某个PDF文件是一个常见的需求。Python 提供了多种库来实现这一功能,其中 PyPDF2 是一个非常流行的选择。该库提供了简单易用的接口,包括 merge() 方法,可…

Linux系统和数据库常用的命令2

Linux系统和数据库常用的命令2 1、两台Linux机器ssh免密登录 client端登录server端需要免密,只需把公钥发送到server就可,会在server端生成一个authorized_keys文件 # 108机器上[rootclient ~]# ssh-keygen -t rsa // 非对称算法 Generating public/…