首页 > 其他分享 >clang 静态编译 ffmpeg

clang 静态编译 ffmpeg

时间:2023-08-06 15:55:12浏览次数:38  
标签:ffmpeg dependency -- graph clang 编译 sh php

文档说明: 只记录关键的地方; 发文时间: 2023-08-06

意义: 静态编译ffmpeg ,可自由裁剪 ,使用libc 构建 ; 支持macos、linux 构建 ;生成库依赖库图

环境: alpine:3.17 docker clang

备注:

大部分软件源代码来源于 github.com ,下载过程断断续续的。请自备代理

借助swoole-cli 已经编写好的依赖静态库

构建步骤:


# 下载项目源码

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 构建环境依赖 
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 

参考文档

1 swoole-cli ffmpeg

标签:ffmpeg,dependency,--,graph,clang,编译,sh,php
From: https://www.cnblogs.com/jingjingxyk/p/17609234.html

相关文章

  • 一、Flink-1.13.6源码编译运行
    1、概述本节演示如何在本地编译、运行Flink源码。技术有限,欢迎各位大佬在评论区批评指正。2、版本说明名称版本flink1.13.6jdk1.8Maven3.2.5操作系统Mac3、编译Flink源码1)从github下载Flink源码gitclonehttps://github.com/apache/flink......
  • 深度学习编译器前端技术概述
    AI编译器在前端经常会做一些静态分析,方便在前端做一些优化:自动微分等。中间表示(IntermediateRepresentation,IR)IR是编译器用于表示源代码的数据结构或代码,是程序编译过程中介于源语言和目标语言之间的程序表示。几乎所有的编译器都需要某种形式的中间表示,来对被分析、转换......
  • 多个C文件混合编译,涉及函数相互调用,地址传递要注意的!
    tc.h#pragmaoncechar*fun();//main函数调用到这个函数,但是在其他.c中定义,在头文件申明下先tacc.c#include<stdio.h>char*fun(){printf("saDHAKJHFJ\n");inti=100;printf("i=%d\n",i);char*pr=(char*)malloc(100);*pr......
  • mysql源代码编译安装(可自拟版本)
    mysql源代码编译安装(可自拟版本)centOS7mysql5.6.40为例准备关闭防火墙的条件下1.yum安装yuminstallncurses-devellibaio-develgccmakecmake-y2.rpm查询一下rpm-qancurses-devellibaio-devel3.创建mysql用户,用于授权目录-s/sbin/nologin不允许用户进行任......
  • Mac vscode 远程编译
    标签: vscode   goland   golang  远程配置环境配置远程调试对于大型的Golang项目往往我都会使用Goland这样的专业IDE,但是由于我本地开发环境硬件资源偏低,不能很顺畅的使用Goland,这个时候我们就可以使用VSCode来代替Goland,另外VSCode同样还支持远程开......
  • IDEA编译封装APK及发布流程指导
    IDEA编译封装APK及发布流程指导目录IDEA编译封装APK及发布流程指导1、安装AndroidSDK2、创建Android项目3、项目结构4、运行环境准备5、安卓虚拟机运行APP6、发布APK注:以下步骤基于IDEACommunity2023.1.1版本操作1、安装AndroidSDK一开始检查无SDK安装,点击next进行安装:......
  • JAVA安全-JWT安全&预编译CASE注入
    通过前期的WEB漏洞的学习,掌握了大部分的安全漏洞的原理及利用,但在各种脚本语言开发环境的差异下,会存在新的安全问题,其中脚本语言类型PHP,Java,Python等主流开发框架会有所差异。Javaweb-SQL注入攻击-预编译机制绕过1. SQL注入的防御---防御sql注入:1.session2.参数绑......
  • x86_64 ubuntu22.04环境下编译版本python3.13.0 alpha 0源码——python3.13.0 alpha 0
      python3.13.0alpha0版本源码编译: 环境——x86_64ubuntu22.04系统: 1.源码下载:gitclonehttps://github.com/python/cpython 2.修改apt源地址:编辑文件:sudovim/etc/apt/sources.list添加内容:deb-srchttp://archive.ubuntu.com/ubuntu/jammymain......
  • Linux之编译安装
    目录Linux编译安装实例1.编译安装步骤2.编译安装实际操作2.1tar解压2.2./configure2.3make编译2.4makeinstall2.5建立软链接2.6测试Linux编译安装实例1.编译安装步骤编译安装自由度最高复杂度最高安装过程第一步:#tar解压并释放源代码到指定目录第二步:./con......
  • 【软件工具安装使用】boost的安装使用和交叉编译
    前言 一、编译安装 二、交叉编译安装注意空格;注意路径; 参考1. BoostC++Libraries;2. ubuntu22.04源码编译安装boost库_奇妙之二进制的博客-CSDN博客;3. Boost1.74.0交叉编译_hrx-@@的博客-CSDN博客;4. BoostGettingStartedonUnixVariants-1.82.0;5. Bo......