ffmpeg 静态编译
文档说明: 只记录关键的地方; 发文时间: 2023-08-06
意义: 静态编译ffmpeg ,可自由裁剪其功能 ,使用libc 构建 ; 支持macos、linux 构建 ;生成库依赖库图
环境: alpine:3.17 docker clang
状态: 继续完善中
备注:
大部分软件源代码来源于 github.com ,如果下载过程断断续续的。请自备代理
复用 swoole-cli 编写好的静态依赖库构建 和 编译流程
支持 macos 环境下构建
与 GPU、X11 相关的库都未构建,因为GPU 驱动、X11 无法实现静态编译
构建步骤:
一条命令执行所有构建流程
bash build-release-example.sh
# 下载项目源码 (new_dev 分支) git clone -b new_dev https://github.com/jingjingxyk/swoole-cli.git # 准备运行环境 cd swoole-cli # 运行docker alpine 3.17 环境 sh sapi/quickstart/linux/run-alpine-container.sh # 进入容器 sh sapi/quickstart/linux/connection-swoole-cli-alpine.sh # 准备容器内基础软件 sh sapi/quickstart/linux/alpine-init.sh --mirror china # 准备 php 运行时 sh setup-php-runtime.sh --mirror china # 初始化本项目依赖 composer update # 下载 ffmpeg 源码和 ffmpeg 依赖的库的源码 ,并生成构建脚本 make.sh php prepare.php +ffmpeg --with-http-proxy=http://192.168.3.26:8015 # 准备 ffmpeg 构建环境依赖 (比如 pip3 install meson ninja ) bash make-install-deps.sh # 构建ffmpeg 依赖的的各种库,包括ffmpeg 自身 bash make.sh all-library # 构建完毕,拷贝目标文件到 bin 目录 bash make.sh config
自由裁剪: 修改这个文件即可 ffmpeg.php
生成 ffmpeg 依赖库依赖图
# 生成 ext-dependency-graph.graphviz.dot 文件 php prepare.php +ffmpeg --without-docker=1 --with-skip-download=1 --with-dependency-graph=1 # 生成PDF 和 svg 格式的文件 sh sapi/extension-dependency-graph/generate-dependency-graph.sh ## 生成的依赖图文件位于 bin/ext-dependency-graph.pdf bin/ext-dependency-graph.svg
用新标签页打开依赖图,图标可以链接到各依赖库的官网
体验ffmpeg 静态编译结果
参考文档
分类:
dev
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!