当前位置: 首页 > news >正文

网站外链海南建设银行官方网站

网站外链,海南建设银行官方网站,网页设计商城网站建设,需要品牌网站建设文章目录 前言一. 配置环境1.1 虚拟机版本1.2 安装Android环境1.2.1 Android SDK安装1.2.2 Android NDK安装 1.3 编译前的准备工作1.3.1 libtasn1-1安装1.3.2 meson安装1.3.3 harfbuzz下载 二. 编译ffmpeg-kit三. 总结 前言 ffmpeg-kit是一款跨多个平台的#xff0c;用于在应… 文章目录 前言一. 配置环境1.1 虚拟机版本1.2 安装Android环境1.2.1 Android SDK安装1.2.2 Android NDK安装 1.3 编译前的准备工作1.3.1 libtasn1-1安装1.3.2 meson安装1.3.3 harfbuzz下载 二. 编译ffmpeg-kit三. 总结 前言 ffmpeg-kit是一款跨多个平台的用于在应用程序中运行FFprobe相关命令的库。只可惜的是这款优秀的开源框架的作者最近表示后续不再维护Saying Goodbye to FFmpegKit。 由于公司需要在ffmeg上增加gl-transitions同时公司用到了ffmpeg-kit。因此不得不手动编译一个FFmpegKit。 一. 配置环境 1.1 虚拟机版本 我选择的是VirtualBox来安装虚拟机虚拟机建议用7.0.14版本。镜像文件是ubuntu-20.04.4-desktop-amd64.iso下载地址我用的是网易开源镜像:ubuntu-releases-20.04。(建议使用20.04以上的iso镜像文件) 1.2 安装Android环境 在经过漫长的虚拟机安装等待后安装好最基本的vim可以参考之前的文章ffmpeg学习ubuntu下编译ffmpeg(全网最懒的编译脚本) 。 通过以下命令更新软件库 apt-get update // 更新源文件并不会做任何安装升级操作 apt-get upgrade // 升级所有已安装的包完成上面的操作那么接下来就是安装Android SDK和Android NDK了。 1.2.1 Android SDK安装 在安装AndroidSDK之前先检查是否安装好JDKubuntu20.04.4没有预置JDK。 当你在命令行中输入jdk的时候会有如下提示 找不到命令“jdk”您的意思是command juk from snap juk (24.12.1)command jd from deb jdim (0.3.0-1build1)command juk from deb juk (4:19.12.3-1)command jdb from deb openjdk-11-jdk-headless (11.0.248-1ubuntu3~20.04)command jdb from deb openjdk-13-jdk-headless (13.0.75-0ubuntu1~20.04)command jdb from deb openjdk-16-jdk-headless (16.0.19-1~20.04)command jdb from deb openjdk-17-jdk-headless (17.0.127-1ubuntu2~20.04)command jdb from deb openjdk-21-jdk-headless (21.0.47-1ubuntu2~20.04)command jdb from deb openjdk-8-jdk-headless (8u422-b05-1~20.04)我这里根据当前虚拟机系统选择的是openjdk-17-jdk-headless其中headless代表缺少显示设备键盘或鼠标的系统配置。AndroidSDK和JDK版本间的关系如下 (该图来自官网Android build 中的 Java 版本) 完成JDK的安装接下来就可以安装AndroidSDK了之所以用到AndroidSDK是因为后续要打包成arr此时必须使用到AndroidSDK。 Android SDK的安装我用的是命令行工具下载地址命令行工具。直接拉到最底部可以看到仅限命令行工具。 选择linux的最新版本。下载到本地注意需要通过以下步骤处理(参考Android官网sdkmanager文档 ) 从 Android Studio 页面下载最新的命令行工具软件包然后解压缩该软件包。将解压缩的 cmdline-tools 目录移至您选择的新目录例如 android_sdk。这个新目录就是您的 Android SDK 目录。在解压缩的 cmdline-tools 目录中创建一个名为 latest 的子目录。将原始 cmdline-tools 目录内容包括 lib 目录、bin 目录、NOTICE.txt 文件和 source.properties 文件移动到新创建的 latest 目录中现在您就可以从这个位置使用命令行工具了。 在这一切都做好后我通过’cp’命令将其拷贝到/opt目录下。我的建议是最好先在home目录下完成包括NDK。 先通过sdkmanager命令查看 sdkmanager --list使用sdkmanager命令下载platform-toolsplatformsbuild-tools sdkmanager platform-tools platforms;android-33 build-tools;33.0.1以上的命令如果出现权限问题请先在AndroidSDK目录上增加权限 sudo chmod -R 777 XXXX/对于权限问题(类似 Warning: Failed to read or create install properties file.)个人以为最好的解决方法是AndroidSDK和NDK就放在home目录下。 接下来配置AndroidSDK环境使用命令 vim ~/.bashrc用vim命令打开.bashrc然后输入下面两条语句 # 配置AndroidSDK环境 export ANDROID_SDK_ROOT/opt/program-tools/AndroidSDK export PATH$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin上面的ANDROID_SDK_ROOT改成你自己的SDK路径。 然后执行 source ~/.bashrc1.2.2 Android NDK安装 和上面的SDK安装一样先下载再配置环境但是这里需要选对版本参考ffmpeg-kit的issues #292下载版本为25.2.9519653SHA1值是53af80a1cce9144025b81c78c8cd556bff42bd0e下载完成后直接解压拷贝到相对应的目录下。 配置环境的步骤和上面一样: # 配置AndroidNDK环境 export ANDROID_NDK_ROOT/opt/program-tools/AndroidSDK/ndk/25.2.9519653 export PATH$PATH:$ANDROID_NDK_ROOT运行 source ~/.bashrc通过命令 ndk-build -v出现类似于以下的提示就成功了 GNU Make 4.3 为 x86_64-pc-linux-gnu 编译 Copyright (C) 1988-2020 Free Software Foundation, Inc. 许可证GPLv3GNU 通用公共许可证第 3 版或更新版本http://gnu.org/licenses/gpl.html。 本软件是自由软件您可以自由修改和重新发布它。 在法律允许的范围内没有其他保证。至此完成了万里长征的第一步。 1.3 编译前的准备工作 参考该文章Building中的Android-Prerequisites 通过apt-get命令下载以下依赖 构建脚本需要以下包 autoconf automake libtool pkg-config curl git doxygen nasm仅当您要构建相应的外部库时才需要安装这些可选包 cmake gcc gperf texinfo yasm bison autogen wget autopoint meson ninja ragel groff gtk-doc-tools libtasn1-1备注 libsndfile 需要autogen bison 2.4wgetgnutls 需要自动点 libwebp 和 x265 需要cmake 3.9 freetype 和 fribidi 需要gcc fontconfig 需要gperf libiconv 需要groff gnutls 需要gtk-doc-tools gnutls 所需的libtasn1-1 meson 0.56dav1d 的忍者 harfbuzz 要求ragel 某些平台上 gmp 需要texinfo 某些平台上 libvpx 和 x265 需要yasm这些依赖包太多了一个个的敲键盘太累那么我们可以用shell脚本解决 #! /bin/bashset -esudo apt-get update \ sudo apt-get -y --allow-change-held-packages full-upgrade \ sudo apt-get -y install \autoconf\automake\libtool\pkg-config\curl\git\doxygen\nasmsudo apt-get update \sudo apt-get -y --allow-change-held-packages full-upgrade \sudo apt-get -y install \cmake\gcc\gperf\texinfo\yasm\bison\autogen\wget\autopoint\meson\ninja-build\ragel\groff\gtk-doc-tools通过该shell脚本可以下载大部分依赖包其中有两个依赖包需要注意libtasn1-1和meson 1.3.1 libtasn1-1安装 libtasn1-1的作用 libtasn1-1 是一个用于处理 ASN.1 编码和解码的库。ASN.1抽象语法标记语言是一种描述数据结构的标准广泛用于通信协议如 SSL/TLS 和 X.509 证书中。libtasn1 库提供了对 ASN.1 数据的解析和编码的支持。 我的ubuntu-20.04.4无法安装libtasn1-1这就意味着在编译开启 –enable-gnutls的ffmpeg时候会出现问题。可以通过如下步骤来解决(参考文档) 命令如下 # 下载解压 wget http://ftp.gnu.org/gnu/libtasn1/libtasn1-4.20.0.tar.gz tar -xzvf libtasn1-4.20.0.tar.gz cd libtasn1-4.20.0 # 编译 ./configure --prefix/usr --disable-static make clean make # 安装 sudo make install配置libtasn1输入以下命令 # 管理员身份 sudo -s echo /usr/lib /etc/ld.so.conf ldconfig以下是chatgpt输出的 命令 echo /usr/lib /etc/ld.so.conf ldconfig 的作用是将 /usr/lib 路径添加到动态链接器的配置文件中并刷新链接器的缓存。让我们逐个分解它的含义 命令的功能 echo 命令会将字符串 /usr/lib 输出到标准输出。 是重定向操作符它会将输出追加到指定的文件中。在这里/etc/ld.so.conf 是动态链接器的配置文件记录了动态库的路径。这条命令会将 /usr/lib 路径追加到 /etc/ld.so.conf 文件的末尾。如果这个目录没有被列出动态链接器在查找共享库时可能会找不到它。ldconfig 是一个用于更新系统中的共享库缓存的命令。它会扫描 ld.so.conf 中列出的所有目录并建立一个缓存以加快后续的库查找。当你修改了共享库路径例如添加了新的库目录需要运行 ldconfig 来更新系统缓存。 再在bashrc中输入 LIBTASN1_CFLAGS-I/usr/include LIBTASN1_LIBS-L/usr/lib -ltasn1执行命令 source ~/.bashrc1.3.2 meson安装 我的ubuntu-20.04.4下载的meson最新版是0.53需要重新安装0.58.1以上的meson我的因为这个在编译的时候会报错(高版本的估计没有) meson.build:25:0: ERROR: Could not invoke sanity test executable: [Errno 8] Exec format error: XXXXXX/.tmp/cmake/build/android-arm64/dav1d/meson-private/sanitycheckc.exe.参考文章 issues52 解决方案是通过pip3去安装meson 参考 ubuntu 20.04 安装与升级 meson 的版本 首先通过apt-get安装pip3 sudo apt install python3-pip安装好pip3后再通过以下命令安装 pip3 install meson0.58.1使用meson -v命令显示版本0.58.1代表安装成功。 1.3.3 harfbuzz下载 我在编译的过程中发现一个问题那就是harfbuzz无法clone下来。同样的如果遇到此类问题建议通过ffmpeg-kit的代码来查看找到ffmpeg-kit/scripts/source.sh的代码。 其中部分代码 harfbuzz)SOURCE_REPO_URLhttps://github.com/arthenica/harfbuzzSOURCE_ID8.0.1SOURCE_TYPETAG;;可以看出需要下载的是https://github.com/arthenica/harfbuzz的tag8.0.1的源码但是不知道为啥无法下载所以我这里就手动下载了harfbuzz-8.0.1 二. 编译ffmpeg-kit 经过上面的准备工作可以正式进入编译环节了。 首先克隆ffmpeg-kit git clone gitgithub.com:arthenica/ffmpeg-kit.git进入到目录下执行 ./android.sh可以得到最基础的不会打开任何依赖项的ffmpeg。 如果需要打开需要的依赖项可以参考这篇文章安卓脚本 。 拿full-gpl所依赖的扩展程序来说通过chat-gpt给出的功能作用如下 dav1d: 这是 AV1 视频编解码器的解码器FFmpeg 使用它来解码 AV1 格式的视频流。fontconfig: 字体配置库用于处理字体管理尤其在渲染字幕时。freetype: 一个开源的字体渲染库用于在视频中添加文本或字幕。fribidi: 用于支持阿拉伯语和其他从右到左书写的语言处理文本排版。gmp: 大整数计算库通常用于处理高精度的数学运算如加密、数字签名等。gnutls: 安全传输协议库TLS/SSL为 FFmpeg 提供加密功能支持安全的视频流传输。kvazaar: 高效的 HEVC/H.265 编解码器用于视频编码。lame: MP3 编解码器库允许 FFmpeg 编码和解码 MP3 格式的音频。libass: 用于字幕渲染特别是 ASS/SSA 字幕格式。libiconv: 字符集转换库帮助 FFmpeg 处理不同编码格式的文本。libilbc: iLBCInternet Low Bitrate Codec编解码器常用于 VoIP语音通信。libtheora: 开源的视频编解码器支持 Theora 格式视频。libvorbis: 一种开源音频编解码器常用于 Ogg 格式的音频。libvpx: VP8/VP9 编解码器Google 开发的用于视频流媒体的格式。libwebp: WebP 图像格式的支持库用于处理 WebP 格式的图片。libxml2: XML 解析库FFmpeg 用它来解析和处理 XML 数据通常在处理流媒体协议时使用。opencore-amr: AMRAdaptive Multi-Rate音频编解码器通常用于语音编码例如移动通信中的语音通话。opus: Opus 音频编解码器广泛用于实时语音通信和高质量音频压缩。shine: MP3 编解码器库较为轻量用于较低复杂度的 MP3 编码。snappy: 数据压缩库常用于快速压缩和解压数据。soxr: 高质量的音频重采样库提供高精度的音频频率转换。speex: 一个开源音频编解码器优化了语音压缩适用于低比特率的语音通信。twolame: MP2 编解码器常用于广播和音频文件编码。vid.stab: 视频稳定库帮助减少视频中的抖动和不稳定画面。vo-amrwbenc: AMR-WB宽带自适应多速率音频编码器通常用于更高质量的语音编码。x264: 开源的 H.264 视频编码器广泛应用于视频流媒体和存储。x265: HEVCH.265视频编码器提供比 H.264 更高的视频压缩效率。xvidcore: Xvid 编解码器库用于 MPEG-4 视频压缩。zimg: 高质量的图像缩放库支持多种图像缩放算法主要用于提高视频处理中的图像质量。如果要是编译符合full-gpl的ffmpeg-kit需要如下命令这里我直接用脚本编写好了。 #! /bin/bash# --disable-arm-v7a --disable-arm-v7a-neon --disable-x86 --disable-x86-64 --disable-arm64-v8aset -e./android.sh --enable-android-media-codec --enable-android-zlib \--enable-dav1d \--enable-fontconfig \--enable-freetype \--enable-fribidi \--enable-gmp \--enable-gnutls \--enable-kvazaar \--enable-lame \--enable-libass \--enable-libiconv \--enable-libilbc \--enable-libtheora \--enable-libvorbis \--enable-libvpx \--enable-libwebp \--enable-libxml2 \--enable-opencore-amr \--enable-opus \--enable-shine \--enable-snappy \--enable-soxr \--enable-speex \--enable-twolame \--enable-vo-amrwbenc \--enable-zimg \--enable-gpl --enable-libvidstab --enable-x264 --enable-x265 --enable-xvidcore \--disable-arm-v7a --disable-arm-v7a-neon --disable-x86 --disable-x86-64上面的命令直接保存后再通过 ./xxx.sh来执行。 当出现Creating Android archive under prebuilt: ok就代表编译成功。 需要注意的是在使用这个手动打包获取的arr的时候需要在自己的Android项目中的gradle脚本中引入 // 手动打包需要自己手动添加下面的代码 api com.arthenica:smart-exception-java:0.1.1三. 总结 后续将基于该项目尝试将gl-transition移植到ffmpeg中。编译的结果可以通过ffmpeg-kit-test来测试。
http://www.hkea.cn/news/14412869/

相关文章:

  • 宿州哪家做网站不做页面设置标签wordpress
  • 广州外贸建网站网页设计与制作教程专题分析
  • 培训餐饮网站建设抖音同城推广怎么弄
  • app案例网站广州公司注册核名
  • 如何做弹幕网站wordpress菜单怎么设置目录册
  • 包头网站公司wordpress主题 插件
  • 网站建设策划基本流程图化妆网站模板
  • 个人网站建设优化网站跳转链接生成
  • 景区门户网站建设北京注册公司代理
  • html网站开发心得湛江网站制作
  • 文化网站建设机关网站建设创新
  • 银川网站建站公司个人免费网站怎么建设
  • 一站式建设网站广告设计有哪些
  • 平台网站建设所需资质中山网站建设 骏域
  • 网站不备案不能访问吗垫江网站建设
  • 模块网站和定制网站区别做蛋糕网站
  • 海口网站建设工作网站开发word文档
  • 网上做任务网站有哪些内容创意个人网页设计
  • seo网站有优化培训班吗网站不备案备案
  • 巩义建设网站seo网站关键词优化机构
  • 网站建设 长期待摊岳阳企业网站定制开发
  • 泰安做网站公司哪家好青岛响应式网站设计
  • 可以直接做海报的网站大连有做途家网站吗
  • 哪个网站做照片书最好免费网站模版下载
  • 换模板搭建网站怎么做wordpress小程序
  • 沈阳网站制作全过程百度指数工具
  • 如何查看网站模板潍坊网站建设电话
  • 做设计开店的网站腾讯云免费网站建设
  • 网站制作便宜wordpress 自适应菜单
  • 网站傻瓜式建设优秀网站特点