作者: Mintimate
博客: https://www.mintimate.cn/
Mintimate's Blog, 只为与你分享
FFMPEG
FFMPEG
"FFmpeg" 这个项目单词中的 "FF" 指的是 "Fast Forward(快速前进), 而"mpeg"指的是"Moving picture expert group". 这个项目主要用于图片, 声音处理, 目前广泛 被用于视频软件和视频处理中.
官网描述
使用 FFmepg 可以轻松(包括但不限于):
视频转码
使用 FFMPEG, 可以轻松讲 MP4 格式文件, 转码为 Mov 格式, 或者是其他格式视频. 方便储存视频到不同平台.
使用 FFMPEG 将 MOV 格式视频转码为 MP4
音频抽离
有时候, 我们又一个 MV(Music Video), 但是我们想将它变成纯音频格式放进我们的 MP3 里. 这个时候, 我们可以使用 FFMPEG 来抽离音频, 如:
- # 抽离 Mintimate.mov 的音频为 Mintimate.acc 音频
- FFMPEG -i Mintimate.mov -vn -y -acodec copy Mintimate.aac
- # 抽离 Mintimate.mp4 的音频为 Mintimate.mp3 音频
- FFMPEG -i Mintimate.mov -vn -y -acodec copy Mintimate.mp3
抽离音频
抽离的音频
直播录屏
一般的网站, 直播可能有一个 m3u8 的播放地址, 这个地址是 CDN 的视频流. 我们可以使用 FFMPEG, 对这个视频流进行录制:
FFMPEG -i https:// 这里是直播地址嗷 / Mintimate.m3u8 -c:v copy -c:a copy -bsf:a aac_adtstoasc Output.mp4
录制视频
这样, 你可以把直播录下来. 分享给小伙伴.
本文须知
因为 FFmepg 用途很广, 且不同场景下还有特定参数. 一篇文章无法同时详解配置和使用. 所以, 本文章, 主要讲解如何在 Linux/Mac/Windows 上配置 FFmepg.
相关链接:
FFMPEG 项目官网 https://www.ffmpeg.org/
FFMPEG 官方总下载地址 https://ffmpeg.org/download.html
Linux 上配置 FFMPEG
Linux 安装 FFMPEG 很简单, 两种方法:
快速编译: 使用 Linux 发行版本自带的软件包工具 (apt-get,yum 等) 快速安装仓库内预先编译好版本的 FFMPEG.
手动配置: 到 FFMPEG 项目官网, 下载预编译版本 FFMPEG 或 FFMPEG 源码进行编译, 并配置到环境变量.
快速编译
首先确定你 Linux 基于的发行版本, 大部分人是基于 CentOS 或 Debian, 打开终端试试就知道:
基于 Debian, 输入 apt-get
如果你输入 apt-get, 发现出现 apt-get: command not found. 那么可以使用 yum 试试. 反之同理.
之后, 你在终端内输入:
- # For Debian
- apt-get install FFMPEG
- # For CentOS
- yum install FFMPEG
一般会询问是否按安装:
确认安装, 输入 "y" 后回车
之后,"跑码" 完成后, FFMPEG 就安装好了:
安装完成
如果失败, 且出现下列提示:
地址解析失败
一般是你 apt-get/yum 太久没更新, 或者你换过它们的源, 没有更新配置. 只需要运行:
- # For Debian
- apt-get update
- # For CentOS
- yum update
之后在运行 FFMPEG 安装命令即可.
手动配置
因为 Linux 不同设备编译过程参数不一样, 本文不提供编译安装方法. 这边提供下载预编译版本 FFMPEG, 并配置到环境变量.
首先, 进入 FFMPEG 官方 Linux 预编译版本 https://johnvansickle.com/ffmpeg/ 页面内, 下载对应系统架构的 FFMPEG:
根据架构选择
我 Linux 设备是 x64 设备, 所以选择 amd64 版本. 终端内, 创建 FFMPEG 文件夹, 并下载解压这个文件:
- # 下载 FFMPEG
- wget "https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz"
- # 解压
- tar -xf FFMPEG-release-amd64-static.tar.xz
之后, 我们配置环境变量:
如果你用 bash, 那么, 配置 / etc/profile 这个文件
如果你使用 ZSH, 那么配置~/.zhsrc 这个文件
大部分 Linux 用户使用 bash, 所以我们演示一下:
- # 编辑 / etc/profile
- VIM /etc/profile
进入后, 按 i 进入编辑模式, 文末添加:
# FFMPEG
export PATH=$PATH:「Path」
保存并退出
之后, 再重载配置文件:
source /etc/profile
即可:
安装完成
Mac 上配置 FFMPEG
macOS 上安装 FFMPEG 也很简单, 两种方法:
快速编译: 使用 Homebrew 软件包工具快速安装仓库内预先编译好版本的 FFMPEG, 但是因为 FFMPEG 不在 Homebrew 官方仓库内, 即使换源 Homebrew 也要连接 GitHub.
手动配置: 到 FFMPEG 项目官网, 下载预编译版本 FFMPEG 或 FFMPEG 源码进行编译, 并配置到环境变量.
本文手动配置使用的是预编译版本 FFMPEG, 预编译版本目前并没有适配 M1 芯片设备. 请使用快速编译方法!
快速编译
这个很简单, 不再赘述. 已经安装 Homebrew 的用户, 终端内输入:
brew install FFMPEG
漫长等待后, FFMPEG 就安装好了.
手动配置
相信很多 macOS 用户并没有手动配置过环境. 这边重点讲解如何手动配置. 同样我们下载预编译版本的 FFMPEG:FFMPEG 官方 macOS 预编译版本 https://evermeet.cx/ffmpeg/ .
我们下载最新版本:
下载 4.4 版本 FFMPEG
下载后, 解压放到我们熟悉的地址, 如:/Users/mintimate/FFMPEG:
下载好后, 解压到熟悉的地址
之后, 我们配置到环境变量即可:
open ~/.zshrc
在文木添加:
- # FFMPEG
- export PATH=$PATH:/Users/mintimate/FFMPEG
保存后, 终端内输入 source ~/.zsshrc 或重启终端即可:
FFMPEG 安装完成
Windows 上配置 FFMPEG
Windwos 的配置最为简单, 我们进入 FFMPEG 项目官方 Windows 预编译 https://github.com/BtbN/FFmpeg-Builds/releases 下载界面:
FFMPEG 下载
这边我推荐使用: GPL 协议版本.
配置环境变量
举个例子, 我们下来了: FFMPEG-n4.4-4-gacb339bb88-win64-gpl-4.4.zip
我们下载好并解压, 得到以下文件:
得到的文件
之后, 我们打开环境变量:
环境变量
编辑 Path, 添加一条记录到刚刚解压出文件的 bin 文件夹下:
编辑 Path
添加记录
使用 FFMPEG
配置好, 保存后就可以在 CMD 和 Powershell 等地方使用 FFMPEG 了:
使用 FFMPEG
总结
其实 FFMPEG 的配置很简单, 而且配置方法多种多样. 但是 FFMPEG 这个根据却相当好用. 如果你对此感兴趣, 可以自己探索探索使用 FFMPEG, 将它运用到代码内, 进一步提高你代码的功能性.
最后, 感觉文章有用, 不要忘记点赞嗷
来源: https://www.qcloud.com/developer/article/1813941