音视频流媒体之 IJKPlayer FFmpeg Android 编译
FIJK dockerfile 编译环境
FROM --platform=linux/amd64 ubuntu:18.04RUN apt-get update && apt-get install -y \wget \unzip \git \gcc \g++ \make \python \yasm \pkg-config \protobuf-compiler \sudoRUN apt-get install -y openjdk-8-jdkENV ANDROID_HOME=/opt/android-sdk-linux
ENV PATH=$PATH:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-toolsRUN wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip \&& unzip -d $ANDROID_HOME android-sdk.zip \&& rm android-sdk.zipRUN wget --quiet --output-document=command-line.zip https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip \&& unzip -d $ANDROID_HOME command-line.zip \&& rm command-line.zipENV PATH=$PATH:$ANDROID_HOME/cmdline-tools/binRUN echo 'y' | sudo $ANDROID_HOME/tools/bin/sdkmanager "platform-tools" "platforms;android-26" "tools"RUN echo "no" | sudo dpkg-reconfigure dashRUN mkdir -p $ANDROID_HOME/ndk
RUN wget --quiet --output-document=ndk-r16b-linux-x86_6.zip https://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip \&& unzip -d $ANDROID_HOME/ndk ndk-r10e-linux-x86_6.zip \&& rm ndk-r10e-linux-x86_6.zip# RUN mkdir -p $ANDROID_HOME/cmake
# RUN wget --quiet --output-document=cmake3102.tar https://cmake.org/files/v3.10/cmake-3.10.2.tar.gz \
# && tar -xvf cmake3102.tar \
# && mv cmake-3.10.2 3.10.2.4988404 \
# && cd 3.10.2.4988404 && ./configure && sudo make \
# && sudo make install \
# && cd .. \
# && mv 3.10.2.4988404 $ANDROID_HOME/cmake/ \
# && rm cmake3102.tar RUN echo 'y' | sudo $ANDROID_HOME/tools/bin/sdkmanager "ndk;16.1.4479499" "cmake;3.10.2.4988404"ENV PATH=$PATH:$ANDROID_HOME/cmake/3.10.2.4988404/bin/
# recommend use ndk 10
ENV ANDROID_NDK=$ANDROID_HOME/ndk/android-ndk-r10e/
# ENV ANDROID_NDK=$ANDROID_HOME/ndk/16.1.4479499/# RUN comman shell
# docker build -f Dockerfile -t fijkplayer:android_ok .
# docker run --platform linux/amd64 -v /Users/blake/work/Kami/kcode/zkcam/ijkplayer-android:/ijkplayer -it fijkplayer:android_ok /bin/bash
build shell
#! /usr/bin/env bash
cd ./contrib
./compile-x264.sh all
./compile-openssl.sh all
./compile-ffmpeg.sh clean && ./compile-ffmpeg.sh all
cd ..
./compile-ijk.sh clean && ./compile-ijk.sh all
cd ./ijkplayer
./gradlew :fijkplayer-full:clean && ./gradlew :fijkplayer-full:assembleRelease
update ffmpeg for multi-arch shell
#! /usr/bin/env bash
cd ./ffmpeg-armv7a
git format-patch HEAD~
cd ../ffmpeg-arm64
git am --signoff < ../ffmpeg-armv7a/000*
cd ../ffmpeg-x86
git am --signoff < ../ffmpeg-armv7a/000*
cd ../ffmpeg-x86_64
git am --signoff < ../ffmpeg-armv7a/000*
相关文章:
音视频流媒体之 IJKPlayer FFmpeg Android 编译
FIJK dockerfile 编译环境 FROM --platformlinux/amd64 ubuntu:18.04RUN apt-get update && apt-get install -y \wget \unzip \git \gcc \g \make \python \yasm \pkg-config \protobuf-compiler \sudoRUN apt-get install -y openjdk-8-jdkENV ANDROID_HOME…...
记录一次较为完整的Jenkins发布流程
文章目录 1. Jenkins安装1.1 Jenkins Docker安装1.2 Jenkins apt-get install安装 2. 关联github/gitee服务与webhook2.1 配置ssh2.2 Jenkins关联2.3 WebHook 3. 前后端关联发布 1. Jenkins安装 1.1 Jenkins Docker安装 Docker很好,但是我没有玩明白如何使用Docke…...
Virtual安装centos后,xshell连接centos 测试及遇到的坑
首先来一张官方的图--各种网络模式对应的连接状况: 1. 网络使用Host-Only模式动态分配IP,点确定后,centos 上运行 system restart network ,使用ifconfig查看新的ip,XShell可以直接连上centos, 但是由于使用…...
【算法】最优乘车——bfs(stringsteam的实际应用,getline实际应用)
题目 H 城是一个旅游胜地,每年都有成千上万的人前来观光。 为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。 每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,…...
『亚马逊云科技产品测评』活动征文|通过lightsail一键搭建Drupal VS 手动部署
『亚马逊云科技产品测评』活动征文|通过lightsail一键搭建Drupal 提示:授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚…...
使用 VuePress 和 Vercel 打造个人技术博客:实现自动化部署
什么是VuePress? 以下是VuePress官方文档的介绍:VuePress 是一个以 Markdown 为中心的静态网站生成器。你可以使用 Markdown 来书写内容(如文档、博客等),然后 VuePress 会帮助你生成一个静态网站来展示它们。VuePress 诞生的初…...
Re50:读论文 Large Language Models Struggle to Learn Long-Tail Knowledge
诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称:Large Language Models Struggle to Learn Long-Tail Knowledge ArXiv网址:https://arxiv.org/abs/2211.08411 官方GitHub项目(代码和实体)…...
Spring IOC - Bean的生命周期之依赖注入
在Spring启动流程中,创建的factoryBean是DefaultListableBeanFactory,其类图如下所示: 可以看到其直接父类是AbstractAutoireCapableBeanFactory,他主要负责完成Bean的自动装配和创建工作。 具体来说,AbstractAutowire…...
Android Termux安装MySQL,内网穿透实现公网远程访问
文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身…...
OpenCV快速入门:像素操作和图像变换
文章目录 前言1. 像素操作1.1 像素统计1.2 两个图像之间的操作1.2.1 图像加法操作1.2.3 图像加权混合 1.3 二值化1.4 LUT(查找表)1.4.1 查找表原理1.4.2 代码演示 2 图像变换2.1 旋转操作2.1.1 旋转的基本原理2.1.2 代码实现 2.2 缩放操作2.3 平移操作2.…...
Django 路由配置(二)
一、路由 就是根据用户请求的URL链接来判断对应的出来程序,并返回处理结果,也是就是URL和django的视图建立映射关系. 二、Django请求页面的步骤 1、首先Django确定要使用的根URLconf模块,通过ROOT_URLCONF来设置,在settings.py配置…...
电子学会C/C++编程等级考试2022年06月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:倒序输出 依次输入4个整数a、b、c、d,将他们倒序输出,即依次输出d、c、b、a这4个数。 时间限制:1000 内存限制:65536输入 一行4个整数a、b、c、d,以空格分隔。 0 < a,b,c,d < 108输出 一行4个整数d、c、b、a,整数之…...
【C++】使用std::vector()函数实现矩阵的加、减、点乘、点除等运算
本文通过vector()函数表示矩阵的形式,对 加、减、点乘、点除等运算进行编码和运行,相应结果如下文所述。 #include <iostream> #include <vector>using namespace std;// 矩阵加法 vector<vector<int>> …...
【python】直方图正则化详解和示例
直方图正则化(Histogram Normalization)是一种图像增强技术,目的是改变图像的直方图以改善图像的质量。具体来说,它通过将图像的直方图调整为指定的形状,以增强图像的对比度和亮度。 直方图正则化的基本步骤如下&…...
c语言:矩阵交换
题目: 代码和思路: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h>int main() {int n 0;int m 0;int arr[10][10] { 0 }; // 输入行和列scanf("%d%d", &n, &m);int i 0;int j 0;//读取数组for (i 0; i < n; i)…...
【论文阅读】基于隐蔽带宽的汽车控制网络鲁棒认证(一)
文章目录 Abstract第一章 引言1.1 问题陈述1.2 研究假设1.3 贡献1.4 大纲 第二章 背景和相关工作2.1 CAN安全威胁2.1.1 CAN协议设计2.1.2 CAN网络攻击2.1.3 CAN应用攻击 2.2 可信执行2.2.1 软件认证2.2.2 消息身份认证2.2.3 可信执行环境2.2.4 Sancus2.2.5 VulCAN 2.3 侧信道攻…...
暖阳脚本_ 将Agent技术的灵活性引入RPA,清华等发布自动化智能体ProAgent
RPA暖阳脚本 近日,来自清华大学的研究人员联合面壁智能、中国人民大学、MIT、CMU 等机构共同发布了新一代流程自动化范式 “智能体流程自动化” Agentic Process Automation(APA),结合大模型智能体帮助人类进行工作流构建&#x…...
JUnit 单元自动化
一、Junit 是什么? Junit 是 Java 中用于单元测试的框架。使用 Junit 能让我们快速高效的完成单元测试。 自动化测试:JUnit提供了自动化测试的能力,开发人员可以编写一次测试用例,然后通过简单的命令或集成到持续集成工具中进行…...
Vue3 源码解读系列(十一)——插槽 slot
slot 插槽的实现实际上就是一种 延时渲染,把父组件中编写的插槽内容保存到一个对象上,并且把具体渲染 DOM 的代码用函数的方式封装,然后在子组件渲染的时候,根据插槽名在对象中找到对应的函数,然后执行这些函数做真正的…...
[github初学者教程] 分支管理-以及问题解决
作者:20岁爱吃必胜客(坤制作人),近十年开发经验, 跨域学习者,目前于新西兰奥克兰大学攻读IT硕士学位。荣誉:阿里云博客专家认证、腾讯开发者社区优质创作者,在CTF省赛校赛多次取得好成绩。跨领域…...
本地部署YakGPT:打造私有化ChatGPT前端,实现语音交互与数据安全
1. 项目概述:为什么我们需要一个本地运行的ChatGPT UI? 如果你和我一样,已经深度依赖ChatGPT来处理日常工作,从代码调试到文案构思,那你肯定也经历过官方网页端那令人捉急的加载速度,或者在移动端上打字的…...
Python: Condition Variable Pattern
项目结构: # encoding: utf-8 # 版权所有 2026 ©涂聚文有限公司™ # 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎 # 描述:Condition Variable Pattern 条件变量模式 # Author : geovindu,Geovin Du …...
ARMv8地址转换机制与TCR_EL2寄存器详解
1. ARMv8地址转换机制概述在ARMv8架构中,地址转换是连接虚拟地址空间和物理内存的核心机制。这种转换通过多级页表结构实现,允许操作系统和hypervisor灵活地管理内存资源。作为系统程序员,理解这个机制的工作原理对开发高效可靠的系统软件至关…...
阵列信号DOA估计系列(四).MVDR/Capon波束形成器:从理论推导到工程实现与性能调优
1. MVDR/Capon波束形成器:从数学本质到工程直觉 第一次接触MVDR算法时,我被它优雅的数学形式所吸引,但真正在项目中应用时才发现,理论推导和工程实现之间存在着巨大的鸿沟。MVDR(Minimum Variance Distortionless Resp…...
Spring 第四天:AOP 面向切面编程与声明式事务管理
前言 Spring 有两大核心:一个是前几天我们重点攻克的 IoC/DI,另一个就是今天要深入学习的 AOP(面向切面编程)。 还记得那句话吗?“AOP 是在不改变原有代码的前提下对其进行功能增强”。听起来很神奇对吧?今…...
CTO 每月烧 600 亿 token,3 个月完成百名程序员七八年写的 800 万行代码
①2026 年 5 月 9 日,昆仑万维董事长方汉的一番发言引热议,相关话题冲上热搜。方汉近日在访谈中坦承,自己每月实际消耗的 Token 高达 20 亿至 30 亿。此前他对外宣称的数字仅为 1 亿,属于刻意的低调处理。他甚至略带自嘲地表示&am…...
物理 AI 为什么离不开边缘计算?
过去两年,AI 给人的印象基本是一回事——一个对话框,一个输入框。你打字它打字,你上传它分析,AI 安静地待在屏幕里,处理着一切关于文字、图像、代码的事情。行业的注意力也都跟着堆在那一头。云厂商抢算力,…...
UCSC基因组浏览器可视化配置实战:从参数调优到多组学数据呈现
1. UCSC基因组浏览器入门:为什么选择它? 第一次接触UCSC基因组浏览器是在分析RNA-seq数据时,当时需要直观展示基因表达差异。这个由加州大学圣克鲁兹分校维护的工具,已经成为生物信息学领域的标准配置。它最吸引我的特点是零代码…...
2025届必备的六大AI写作神器推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 有一款专门针对学术研究者精心打造的智能化写作辅助系统,它就是AI开题报告工具。…...
纯电商用车再生制动能量回收模糊控制策略【附代码】
✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导,毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于自适应扩展卡尔曼滤波的SOC精确估计与能量管理…...
