跳至主要內容

ffmpeg - 编译

Kamimika...大约 2 分钟工具ffmpeg笔记

由于包含全部功能的ffmpeg.exe体积过大,所以当只需要部分功能时,需要自己编译 ffmpeg。

推荐教程:博客园open in new window

下载源码

下载地址open in new window

安装依赖库

在 Windows 上的安装可以使用 MSY2open in new window 进行

pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S nasm
pacman -S yasm
pacman -S make
pacman -S diffutils

配置编译参数

先转到 ffmpeg 源码目录

执行./configure --help可查看所有支持的编译参数

先禁用所有模块,然后逐个开启模块进行编译

--disable-everything

指定输出目录

--prefix=PATH

protocol:文件协议

file表示本地进行转码,不支持网络操作

--enable-protocol=file

encoder:编码器

如需将一个格式转成另一个格式,就需要目标格式的编码器

启用指定的编码器

--enable-encoder=NAME

decoder:解码器

如需将一个格式转成另一个格式,就需要原格式的解码器

启用指定的解码器

--enable-decoder=NAME

parser:解析器

如需将一个格式转成另一个格式,就需要原格式的解析器

启用指定的解析器

--enable-parser=NAME

muxer:封装器

将多个媒体流封装成一个文件,如 MP4 文件可以包含音频、视频、字幕等媒体流

启用指定的封装器

--enable-muxer=NAME

demuxer:拆分器

将一个文件拆分成多个媒体流,如 MP4 文件可以拆分成音频、视频、字幕等媒体流

如需要从视频提取音频就需要拆分器

启用指定的拆分器

--enable-demuxer=NAME

filter:过滤器

对媒体流进行处理,如裁剪、旋转、缩放、音频重采样需要不同的过滤器,可手动开启需要的过滤器等

启用指定的过滤器

--enable-filter=NAME

其他参数

--extra-libs="-lpthread" --pkg-config-flags="--static" --extra-ldflags='-Wl,-Bstatic -lpthread'

编译

make -j4

输出

将编译好的文件输出到PATH指定的目录

make install
上次编辑于:
贡献者: wzh656
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.3.0