FFmpeg 在 Python 中的安装使用方法详解
目录
- 一、了解 FFmpeg
- 二、FFmpeg 的组成
- 三、FFmpeg for Windows
- 3.1 下载
- 3.2 安装
- 3.3 测试
- 四、用法
- 五、附录
一、了解 FFmpeg
- FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
- 采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。
- 它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
- FFmpeg能干什么?
FFmpeg不属于Python的包,只是Python在处理音视频的时候,这个工具就起到了关键的作用。
官网: https://www.ffmpeg.org/
Github地址: https://github.com/FFmpeg/FFmpeg
百度网盘链接: https://pan.baidu.com/s/1UBcoXy6v3XG8oz0GuMKd8w 提取码:90ow
二、FFmpeg 的组成
FFmpeg主要有三个部分:
第一部分是四个作用不同的工具软件
分别是:ffmpeg.exe,ffplay.exe,ffserver.exe和ffprobe.exe。- ffmpeg.exe:音视频转码、转换器
- ffplay.exe:简单的音视频播放器
- ffserver.exe:流媒体服务器
- ffprobe.exe:简单的多媒体码流分析器
第二部分是可以供开发者使用的SDK
为各个不同平台编译完成的库。如果说上面的四个工具软件都是完整成品形式的玩具,那么这些库就相当于乐高积木一样,我们可以根据自己的需求使用这些库开发自己的应用程序。这些库有:- libavcodec:包含音视频编码器和解码器
- libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等功能
- libavformat:包含多种多媒体容器格式的封装、解封装工具
- libavfilter:包含多媒体处理常用的滤镜功能
- libavdevice:用于音视频数据采集和渲染等功能的设备相关
- libswscale:用于图像缩放和色彩空间和像素格式转换功能
- libswresample:用于音频重采样和格式转换等功能
第三部分是整个工程的源代码
无论是编译出来的可执行程序还是SDK,都是由这些源代码编译出来的。FFmpeg的源代码由C语言实现,主要在Linux平台上进行开发。FFmpeg不是一个孤立的工程,它还存在多个依赖的第三方工程来增强它自身的功能。在当前这一系列的博文/视频中,我们暂时不会涉及太多源代码相关的内容,主要以FFmpeg的工具和SDK的调用为主。到下一系列我们将专门研究如何编译源代码并根据源代码来进行二次开发。
三、FFmpeg for Windows
3.1 下载
打开官网下载地址:http://ffmpeg.org/download.html
在下载页面上,我们可以看到,对于32位和64位版本,分别提供了三种不同的模式:static、shared和dev:
- static: 该版本提供了静态版本的FFmpeg工具,将依赖的库生成在了最终的可执行文件中;作为工具而言此版本就可以满足我们的需求;
- share: 该版本的工具包括可执行文件和dll,程序运行过程必须依赖于提供的dll文件;
- dev: 提供了库的头文件和dll的引导库;
这里我选择static版本的。
完事点击Download下载即可。
3.2 安装
将下载到本地的压缩包解压到合适的位置。
比如我将它解压到G:\software目录。
配置环境变量
复制软件的bin目录路径G:\software\ffmpeg-4.2.1-win64-static\bin,将它添加到系统环境变量的Path中:
3.3 测试
- 终端执行ffmpeg -version命令查看是否安装成功:
OK,如上图所示,安装成功。
四、用法
示例演示:
# -*- coding: utf-8 -*- import os import timedef convert_audio(m4a_path):"""实现 m4a to mp3:param m4a_path::return:"""temp_name = m4a_path.split('/')[-1].split('.')[0]os.system("ffmpeg -i " + m4a_path + " " + p + temp_name + ".mp3")convert_audio("C:/Users/Nick/Desktop/m4atomp3/YesterdayOnceMore.m4a")
五、附录
Ffmpeg常用转码命令
ffmpy3官方文档
mp4格式的视频,编码方式mpeg4,转化为h264
python ffmpy3与FFmpeg的安装 python 使用 ffmpeg
FFmpeg 在 Python 中的安装使用方法详解相关推荐
- python中requests库的用途-数据爬虫(三):python中requests库使用方法详解
有些网站访问时必须带有浏览器等信息,如果不传入headers就会报错,如下 使用 Requests 模块,上传文件也是如此简单的,文件的类型会自动进行处理: 因为12306有一个错误证书,我们那它的网 ...
- python中pandas安装视频教程_详解Python中pandas的安装操作说明(傻瓜版)
很多人来问我pandas的安装(python数据分析里面的必修课) 步骤如下: 安装python的时候,把路径加到系统里,这样,随时可以用pip 路径添加方法: 查找路径: 路径1: 2.例如: 即: ...
- Python 中当前时间表示方法详解
在 Python 中获取当前时间是许多与时间有关的操作的一个很好的起点.一个非常重要的用例是创建时间戳.在本教程中,你将学习如何用 datetime 模块获取.显示和格式化当前时间. 我们将学习如何读 ...
- 7 centos lvs nat配置_centos中lvs安装配置方法详解
一.lvs-nat模式 网络配置: 复制代码代码如下: lvs-server eth0 :host-only adapter 192.168.56.101 lvs-server eth1 :Inter ...
- python中累加函数_对Python实现累加函数的方法详解
对Python实现累加函数的方法详解 发布时间:2020-10-26 00:02:44 来源:脚本之家 阅读:120 作者:岚漾忆雨 这个需求比较奇怪,要求实现Sum和MagaSum函数,实现以下功能 ...
- python中selenium模块驱动谷歌详解
python中selenium模块驱动谷歌详解 Selenium的介绍.配置和调用 Selenium(浏览器自动化测试框架) 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中 ...
- python中xlrd模块的使用详解
python中xlrd模块的使用详解 两个问题: 什么是xlrd模块? 为什么使用xlrd模块? 1.什么是xlrd模块? python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读 ...
- python按键脚本教程-在自动化中用python实现键盘操作的方法详解
原来在robotframework中使用press key方法进行键盘的操作,但是该方法需要写被操作对象的locator,不是很方便,现在找到了一种win32api库写键盘操作的一个方法(注意:此方法 ...
- python画简单的图形的代码-Python实现画图软件功能方法详解
概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...
最新文章
- 调试Docker容器
- Repo lesson
- java把一个list_java中将一个List等分成n个list的工具方法(推荐)
- hs300 quant
- Java并发编程的基础-为什么要复位
- DotText研究资料整理
- 【BZOJ2754】【codevs2403】喵星球上的点名,AC自动机与STL的狂欢
- 凝思系统如何调节分辨率_如何消除步进电机的噪音和振动?
- matlab_多目标遗传算法
- 在win11和win10的edge浏览器运行flash网址设置详解
- 伦敦艺术大学创意计算机学院,伦敦艺术大学专业详细设置
- 单片机控制12864显示多行汉字(含PROTEUS仿真文件、程序和字模提取软件)
- AUTOSAR基础篇之StbM
- xmind怎样画流程图_【工作流程图】如何用xmind做流程图
- 东方证券万字报告:微信视频号进入稳定的发展期
- <数据结构>链表实战之单链表与双链表的增删改查
- 10讲学会C语言之第一讲:编程前的准备
- 英文版sketch如何转为中文版?sketch英文转为中文教程!
- 茗创:脑电数据处理业务
- STM32F103 RTC LSE/LSI为时钟源的代码
热门文章
- 等我装完B 我再收拾你 Wating me to fuck you
- Jmeter01 -mac下的安装
- 采集rtsp流摄像头到浏览器实时播放方案
- 可穿戴设备,朝“超人”迈进
- ATECC508A芯片开发笔记(二):开发准备之 CryptoAuthLib 库简介与移植
- 台式机dp接口_了解笔记本电脑的各种视频接口
- 2600评测_佳能专微的雄心,RF 28-70/2 L USM评测
- 网站流量日志数据分析系统(模块开发----数据仓库设计)
- matlab三个商人三个随从,商人们怎样安全过河 (附MATLAB程序完整)
- AliOS Things