ffmpeg-linux系统编译so库

2023-10-31

windows10下安装双系统,这个流程百度一下一大把资料。

1.ubuntu-18.04.3-desktop-amd64.iso 驱动器

2.安装VMware Workstation Pro

3.配置linux下配置ndk环境

4.下载ffmepg

第一步

下载ubuntu-18.04.3-desktop-amd64.iso下载后打开ubuntu-18.04.3-desktop-amd64.iso

在设备和驱动器下会显示DVD驱动器。

第二部

下载VM不建议下载到系统盘

然后创建新的虚拟机

linux桌面打开terminal命令板进行ndk和ffmpeg文件的下载

使用wget 命令下在ndk:wget https://dl.google.com/android/repository/android-ndk-r15c-linux-x86_64.zip

unzip android-ndk-r20-linux-x86_64.zip

在file 可以看到解压后文件夹

配置linux ndk 的环境变量 在terminal 中输入vim ~/.bashrc 进行配置

本人建议直接使用sudo gedit ~/.bashrc 命令编辑环境变量。

第二种方法 vim /etc/profile 中配置 或者使用如果有权限的话使用sudo gedit /etc/profile进行配置

直接文件末尾添加

export NDK=/home/xq/android-ndk-r15c
export PATH=$NDK:$PATH

重启测试环境命令:

echo $PATH

ndk-build -v 打印出:

GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-pc-linux-gnu

ndk环境配置成功

下载ffmpeg命令 我这边目前用的都是最高版本 wget http://ffmpeg.org/releases/ffmpeg-4.2.tar.gz

如果想要查看ffmpeg的版本http://ffmpeg.org/releases这个网址

解压tar 命令:tar -xzf ffmpeg-4.2.tar.gz 解压前先看下文件路径是否在当前的路径下 输入 dir查看当前路径下文件。

解压后赋予权限/赋予权限的指令 chmod 777 ffmpeg-4.2 

接下来修改configure文件

SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
修改

SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
然后创建编辑touch build.sh sh脚本内容:

#!/bin/bash
make clean
export NDK=/home/xq/android-ndk-r15c
export SYSROOT=$NDK/platforms/android-9/arch-arm/
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
export CPU=arm
export PREFIX=$(pwd)/android/$CPU
export ADDI_CFLAGS="-marm"
./configure \
--target-os=linux \
--prefix=$PREFIX \

--arch=arm \
--disable-doc \
--enable-shared \
--disable-static \
--disable-yasm \
--disable-symver \
--enable-gpl \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install

然后在ffmpeg路径下执行脚本,然后就出现了一系列的文件找不到问题。总之一系列坑

解决Makefile:2: ffbuild/config.mak: No such file or directory找不到的问题,在执行sh脚本前先执行./configure 

这块也有坑,可所谓一步一坑啊!找不到yasm 直接装一个sudo apt-get install yasm 然后在执行sh脚本。这时发现编译的文件找不到了明明配置好prefix为啥没有,头疼然后就百度不过还时找到的

系统默认给编译到了/usr/local路径下的includ和lib文件夹里了。整的时一头雾水。

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ffmpeg-linux系统编译so库 的相关文章

  • 数字图像隐藏图像的两种算法及实现代码

    数字图像 二值图像 也叫单色图像 是将每个像素点存放在一个bit空间 值为0或者1 的图像 也就是说每个像素 非黑即白 主要用于图像形态学的研究 8位灰度图像 每个像素存放在一个byte空间 8位 0 255 0表示最暗色黑色 255表示最
  • Shell 异常处理

    原创 转载请注明出处 bin bash 服务器执行以下脚本 重新上传脚本到服务器 gt 部署启动的脚本 当任何一行的命令执行错误的时候 比如命令写错了 直接退出 不继续往下执行 function openErrexit set e 当任何一
  • Linux 系统设置开机自动运行脚本的方法

    Linux 系统设置开机自动运行脚本的方法 目录 前言 在工作中 我们经常有个需求 那就是在系统启动之后 自动启动某个脚本或服务 在 Windows 下 我们有很多方法可以设置开机启动 但在 Linux 系统下我们需要如何操作呢 Linux
  • 从功能测试到掌握自动化,四个月时间我是如何从点工进入互联网大厂

    年关了 回望2022年 你的这个2022年收获咋样啦 各大招聘网站 测试工程师月薪一万以上基本都有一个必备技能 那就是自动化测试 那么自动化测试到底难不难呢 下面我将会将我的经历讲给大家听 希望听完后 大家会有自己的一个判断 1 知识体系化
  • 【python】数字图像处理

    目录 基本概念 图像增强 整体代码 线性变换 分段线性变换 对数变换 幂律变换 直方图 图像滤波 平滑图像 锐化图像 基本概念 数字图像定义 对于一幅图像 我们可以将其放入坐标系中 这里取图像左上定点为坐标原点 x 轴向右 和笛卡尔坐标系x
  • caffe 进行手写数字训练

    案例数据准备 下载 链接 https pan baidu com s 10CmpZUdEVmma4A0mziu9dw 提取码 dmjr 复制这段内容后打开百度网盘手机App 操作更方便哦 解压后放到data mnist 进入C Window
  • vs2019登录不上账号怎么办

    别用校园网 用手机热点几分钟就登录上了 惨痛的教训
  • Android APP间跳转

    1 通过包名启动APP 启动方式 只需知道目标APP包名即可 例如 app1 跳转到app2 app2包名为 com demo skipdemo app1启动代码如下 通过目标APP的包名创建intent对象 Intent intent g
  • Hyper-V安装图形化界面

    七 Hyper V安装图形化界面 此处主要需要时间下载界面的安装包 故在此只贴出操作 1 登录 然后键入命令 yum grouplist 可以看到Avilable Environment Groups 中有图形界面GNOME Desktop
  • 求特殊方程的正整数解

    本题要求对任意给定的正整数N 求方程X2 Y2 N的全部正整数解 输入格式 输入在一行中给出正整数N 10000 输出格式 输出方程X2 Y2 N的全部正整数解 其中X Y 每组解占1行 两数字间以1空格分隔 按X的递增顺序输出 如果没有解
  • SpringBoot不同环境加载不同配置文件

    Spring不同环境加载不同配置文件 resource profile 我们在使用spring的时候 一般都会有不同的环境需要部署 开发环境 测试环境和生产环境 而不同的环境则会有不同的配置 比如数据库ip 解决这个问题 我所熟悉的有两种策
  • java中如何将String类型的日期格式为yyyyMMdd转化为date类型的yyyy-MM-dd格式

    今天在做webservice接口服务的时候 xml文件传入的一个节点为人员的出生日期 对应实体类的字段类型为Date类型 获取到的值为String类型 代码如下 获取的值为 19570323 String dateString emp ge
  • jquery之index与selectedIndex

    晚上有时间 继续再写一点 我们来讲一下关于select表单的所有操作 在项目中还是有很多地方需要用到的 讲select之前先讲一下index 的用法 很长时间之前用过一回 熟悉一下还是有用处的 1 index 同级元素的index 获得第一
  • JavaParser入门:以编程方式分析Java代码

    我最喜欢的事情之一是解析代码并对其执行自动操作 因此 我开始为JavaParser做出贡献 并创建了两个相关项目 java symbol solver和Effectivejava 作为JavaParser的贡献者 我反复阅读了一些非常类似的
  • cv2读取视频每10帧保存一张图像

    读取本地mp4视频 每隔10帧保存一张图像到本地 导入所有必要的库 import cv2 import os RootDir Users billiards SaveDir os path join RootDir data 从指定的路径读
  • GICP 配准点云(附python 代码)

    import open3d as o3d import numpy as np import copy def draw registration result src tar transformation source temp copy
  • IP地址分类(A,B,C,D,E类)

    A类的10 0 0 0 10 255 255 255 B类的172 16 0 0 172 31 255 255 C类的192 168 0 0 192 168 255 255为私网IP 除此之外 A B C三类的所有其余IP都是公网IP 或者
  • 记录Python学习 1:列表字符串转数字

    问题 如何将列表 1 2 3 4 5 中的字符串型转化为数值型 通常在使用 lst input split 获得输入时 列表里为字符串型 有时需要进行转换 常用的有两种方法 方法一 利用列表推导式 lst 1 2 3 4 5 lst int
  • android APP调用系统方法

    一般来说 有些系统方法是不提供在 中的 这种情况下 需要把app的源码放到系统源码的目录下编写Android mk进行编译 使其能访问到 hide的系统方法 但是 即使编译通过 在系统中运行的时候 仍然会碰到权限被拒绝的问题 昨天 我在AP
  • 语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖

    文章目录 语句覆盖 判定覆盖 条件覆盖 条件 判定覆盖 组合覆盖 路径覆盖 逻辑覆盖率 语句覆盖 lt 条件覆盖 lt 判定覆盖 lt 条件 判定覆盖 lt 组合覆盖 lt 路径覆盖 语句覆盖 基本思想 设计用例 使程序中的每个可执行语句至

随机推荐

  • DENOISING DIFFUSION IMPLICIT MODELS 论文笔记

    前言 生成模型现在主要分为两类 分别是GAN和Diffusion Model 但是GAN存在一个很棘手的问题就是训练不稳定 这也是Diffusion Model相比之下的优势 DDPM是基于Markovian扩散过程的模型 虽然在生成模型上
  • Java循环结构和DeBug概述

    循环结构 掌握while 循环 先判断在执行 1 循环初始化变量 2 循环条件 3 循环操作 4 循环出口 将循环条件逐渐变为不满足 例图下 do while 循环 先执行在判断 1 声明键盘录入 无论条件是否合格 都会先执行依次循环操作
  • Basic Level 1067 试密码 (20分)

    题目 当你试图登录某个系统却忘了密码时 系统一般只会允许你尝试有限多次 当超出允许次数时 账号就会被锁死 本题就请你实现这个小功能 输入格式 输入在第一行给出一个密码 长度不超过 20 的 不包含空格 Tab 回车的非空字符串 和一个正整数
  • MQTT 消息通信工具使用

    MQTT 介绍 MQTT是机器对机器 M2M 物联网 IoT 连接协议 它被设计为一个极其轻量级的发布 订阅消息传输协议 对于需要较小代码占用空间和 或网络带宽非常宝贵的远程连接非常有用 是专为受限设备和低带宽 高延迟或不可靠的网络而设计
  • Node.js的前世今生,Node.js和npm安装教程

    Node js是目前非常火热的技术 但是它的诞生经历却很奇特 众所周知 在Netscape设计出JavaScript后的短短几个月 JavaScript事实上已经是前端开发的唯一标准 后来 微软通过IE击败了Netscape后一统桌面 结果
  • SpringBoot实战(二十四)集成 LoadBalancer

    目录 一 简介 1 定义 2 取代 Ribbon 3 主要特点与功能 4 LoadBalancer 和 OpenFeign 的关系 二 使用场景一 Eureka LoadBalancer 服务A loadbalancer consumer
  • Qt 集成 FFmpeg 实现颜色格式转换

    目录 1 Qt 集成 FFmpeg 1 1 下载 FFmpeg 1 2 Qt 集成 FFmpeg 1 2 1 修改 pro 文件 1 2 2 放入 dll 文件 1 2 3 代码中使用 FFmpeg 2 图像格式转换 3 预览 4 项目地址
  • 图形学--Transformation

    为什么突然写图形学的东西了呢 当然是学校要上这门课 摊 2D Transformation scale 缩放 其中这个对角矩阵是缩放矩阵 Reflection 反转 Shear 切变 Roatate 旋转 默认绕原点旋转 逆时针 旋转 角是
  • Android 使用ViewPager创建导航页(最简单方法,不服来辩)

    要说写一个APP最先要写的是什么 那肯定是导航页了 导航页怎么实现呢 这里介绍其中一种使用方法ViewPager 好了废话不多说 一 VIewPager是什么 ViewPager继承自ViewGroup 是一个View容器 用于装载多个Vi
  • 网络编程学习笔记(基础)

    序言 这个博客有点 胡吃海喝 的味道 所写虚于所实哈 笔记记的是一个B站up主的 目录 TCP 双向的沟通 双向奔赴 gt 稳定 UDP 单向的沟通 单相思 gt 发送 网络编程的作用 网络编程的重点在于 联机 单机游戏和联机游戏的区分 网
  • R从文件中读取数据,输出文件

    看了几天的书 终于到这一步了 说实话 用R来做统计 很少有人手动的去输入那些数字 肯定是从别的地方导入的 我们用来处理就可以了 所以到这里才算是真正的入门 前面都是做基础的练手 我学习R从 R语言与统计分析 入手 第一个例子 从书上的例子
  • window消息,窗口学习笔记

    线程和窗口的关系 如上图在 点击了窗口后 int a 100 这条语句不会执行 知道把窗口关闭掉才会执行 如果把SendMessage函数改为PostMessage函数 则直接会执行到这条语句
  • java代码对比工具_代码比较工具(Diffuse)

    支持命令行提示和一个基于GUI的窗口工具包 他在命令行中的速度是相当快的 支持像 C Python Java XML 等语言的语法高亮显示 可视化比较 非常直观 支持两相比较和三相比较 这就是说 使用 Diffuse 你可以同时比较两个或三
  • ChatGPT 太贵?一键部署自己的私有大模型

    部署你的私有化对话机器人 只需要三步 克隆 github 中文版 LLaMa repo 下载 HuggingFace 13B 16K 完整模型 启动对话窗口 没错 就是这么简单 我把这份操作指南 做成了一份 Jupyter Notebook
  • 遗传算法(GA)优化BP神经网络分类预测,GA-BP分类预测,多特征输入模型。多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,程序可出分类效

    清空环境变量 warning off 关闭报警信息 close all 关闭开启的图窗 clear 清空变量 clc 清空命令行 导入数据 res xlsread 数据集 xlsx 划分训练集和测试集 P train res 1 250 1
  • 萤火学堂视频:硬件设计-PCB原理图简要讲解

    萤火学堂 视频 硬件设计 PCB原理图简要讲解 https v youku com v show id XNDY0MTYyNDk4NA 3D 3D html
  • java 批量查询es_java操作ES的简单查询和bool查询

    导入包 org elasticsearch client transport 5 2 2 org apache logging log4j log4j api 2 7 org apache logging log4j log4j core
  • 实验七,运算符重载

    一 实验目的和要求 熟悉运算符重载的定义和使用方法 二 实验内容 1 调试下列程序 sy7 1 cpp include
  • CSDN每日一练20230310

    题目名称 一维数组的最大子数组和 题目描述 下面是一个一维数组的 最大子数组的和 的动态规划的解法 include
  • ffmpeg-linux系统编译so库

    windows10下安装双系统 这个流程百度一下一大把资料 1 ubuntu 18 04 3 desktop amd64 iso 驱动器 2 安装VMware Workstation Pro 3 配置linux下配置ndk环境 4 下载ff