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

网站制作推广公司seo搜索引擎优化策略

网站制作推广公司,seo搜索引擎优化策略,如何查看wordpress版本号,网站建设使用的基本技术文章目录 前言FFmpeg源码下载交叉编译NDK下载x264编译源码下载编译 FFmpeg编译脚本 AOSP继承FFmpeg 前言 原生AOSP中并未继承FFmpeg,所以要想在android上使用,需要自己编译集成。 FFmpeg源码下载 git clone https://git.ffmpeg.org/ffmpeg.git目前最新…

文章目录

  • 前言
  • FFmpeg源码下载
  • 交叉编译
    • NDK下载
    • x264编译
      • 源码下载
      • 编译
    • FFmpeg编译脚本
  • AOSP继承FFmpeg

前言

原生AOSP中并未继承FFmpeg,所以要想在android上使用,需要自己编译集成。

FFmpeg源码下载

git clone https://git.ffmpeg.org/ffmpeg.git

目前最新的release分支是release/7.0,我们编译最新分支

git checkout release/7.0

交叉编译

我们在ubuntu系统下编译出Android系统,也就是arm平台的FFmpeg库。

NDK下载

使用Android Studio下载即可。如下图所示:
NDK下载
我使用的版本是25.0.8775105

x264编译

FFmpeg解码h264时需要使用x264,但是x264是单独的库,需要单独下载编译,然后集成到FFmpeg。

源码下载

git clone http://git.videolan.org/git/x264.git

编译

#!/bin/bash# 设置 NDK 路径,修改为你的 NDK 实际安装位置
export NDK=/home/zzh/Android/Sdk/ndk/25.0.8775105
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64# 设置目标架构和 API 级别
export API=30
export TARGET=aarch64-linux-android
export PREFIX=$(pwd)/x264_android# 设置编译器和工具链
export AR=$TOOLCHAIN/bin/llvm-ar
export AS=$TOOLCHAIN/bin/llvm-as
export CC=$TOOLCHAIN/bin/$TARGET$API-clang
export CXX=$TOOLCHAIN/bin/$TARGET$API-clang++
export LD=$TOOLCHAIN/bin/ld
export RANLIB=$TOOLCHAIN/bin/llvm-ranlib
export STRIP=$TOOLCHAIN/bin/llvm-strip
export NM=$TOOLCHAIN/bin/llvm-nm
export STRINGS=$TOOLCHAIN/bin/llvm-strings# 配置 x264 编译选项
./configure \--prefix=$PREFIX \--disable-asm \--enable-static \--enable-pic \--host=aarch64-linux-android  \--cross-prefix=$TOOLCHAIN/bin/$TARGET$API- \--sysroot=$TOOLCHAIN/sysroot \--extra-cflags="-Os -fPIC" \# 检查 configure 的输出日志
if [ $? -ne 0 ]; thenecho "Configuration failed"exit 1
fi# 编译和安装
make -j$(nproc)
if [ $? -ne 0 ]; thenecho "Build failed"exit 1
fimake install
if [ $? -ne 0 ]; thenecho "Installation failed"exit 1
fiecho "x264 has been successfully built and installed"

FFmpeg编译脚本

x264会以静态库的方式集成到FFmpeg中。

#!/bin/bash# 设置NDK路径,修改为你的NDK实际安装位置
export NDK=/home/zzh/Android/Sdk/ndk/25.0.8775105
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64# 设置目标架构和API级别
export API=30  # 根据你的需求选择合适的API级别
export TARGET=aarch64-linux-android
export PREFIX=$(pwd)/ffmpeg_android  # 输出目录# 设置编译器和工具链
export AR=$TOOLCHAIN/bin/llvm-ar
export AS=$TOOLCHAIN/bin/llvm-as
export CC=$TOOLCHAIN/bin/$TARGET$API-clang
export CXX=$TOOLCHAIN/bin/$TARGET$API-clang++
export LD=$TOOLCHAIN/bin/ld
export RANLIB=$TOOLCHAIN/bin/llvm-ranlib
export STRIP=$TOOLCHAIN/bin/llvm-strip
export NM=$TOOLCHAIN/bin/llvm-nm# 设置x264 pkg-config 路径
export PKG_CONFIG_PATH=/home/zzh/work/x264/x264_android/lib/pkgconfig:$PKG_CONFIG_PATH# 配置 FFmpeg 编译选项
echo "Configuring FFmpeg..."
./configure \--prefix=$PREFIX \--disable-static \--enable-shared \--enable-gpl \--enable-libx264 \--pkg-config="pkg-config --static" \--extra-ldflags="-L/home/zzh/work/x264/x264_android/lib" \--pkg-config-flags="--static" \--disable-doc \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--disable-avdevice \--disable-symver \--disable-w32threads \--disable-muxer=sctp \--disable-demuxer=sctp \--disable-devices \--disable-postproc \--cross-prefix=$TOOLCHAIN/bin/$TARGET$API- \--target-os=android \--arch=aarch64 \--enable-cross-compile \--sysroot=$TOOLCHAIN/sysroot \--strip=$STRIP \--nm=$NM 2>&1 | tee configure.logif [ $? -ne 0 ]; thenecho "Configuration failed"exit 1
fi# 编译和安装
echo "Building FFmpeg..."
make -j$(nproc) 2>&1 | tee build.logif [ $? -ne 0 ]; thenecho "Build failed"exit 1
fimake install
if [ $? -ne 0 ]; thenecho "Installation failed"exit 1
fiecho "FFmpeg has been successfully built and installed"

以上编译完成后,会在ffmpeg_android目录生成编译产物。

zzh@ubuntu:~/work/ffmpeg/ffmpeg_android$ ll
total 20
drwxrwxr-x  5 zzh zzh 4096  5月 26 22:54 ./
drwxrwxr-x 19 zzh zzh 4096  5月 26 23:37 ../
drwxrwxr-x  8 zzh zzh 4096  5月 26 22:54 include/
drwxrwxr-x  3 zzh zzh 4096  5月 26 23:39 lib/
drwxrwxr-x  3 zzh zzh 4096  5月 26 22:54 share/

AOSP继承FFmpeg

集成目录如下:

zzh@ubuntu:~/work/aosp/android-13.0.0_r44/external/ffmpeg_aarch64$ ls -lh
total 16K
-rw-rw-r-- 1 zzh zzh 1.6K  5月  1 21:45 Android.bp
drwxrwxr-x 8 zzh zzh 4.0K  5月 26 23:57 include
drwxrwxr-x 3 zzh zzh 4.0K  5月 26 23:57 lib
drwxrwxr-x 3 zzh zzh 4.0K  5月 26 23:57 share

Android.bp

// 定义libavutil
cc_prebuilt_library_shared {name: "libavutil",srcs: ["lib/libavutil.so"],export_include_dirs: ["include"],strip: {none: true,},
}// 定义libswresample
cc_prebuilt_library_shared {name: "libswresample",srcs: ["lib/libswresample.so"],export_include_dirs: ["include"],shared_libs: ["libavutil",],strip: {none: true,},
}// 定义libswscale
cc_prebuilt_library_shared {name: "libswscale",srcs: ["lib/libswscale.so"],export_include_dirs: ["include"],shared_libs: ["libavutil",],strip: {none: true,},
}// 定义libavcodec
cc_prebuilt_library_shared {name: "libavcodec",srcs: ["lib/libavcodec.so"],export_include_dirs: ["include"],shared_libs: ["libavutil","libc","libm","libswresample","libz",],strip: {none: true,},
}// 定义libavformat
cc_prebuilt_library_shared {name: "libavformat",srcs: ["lib/libavformat.so"],export_include_dirs: ["include"],shared_libs: ["libavcodec","libavutil","libc","libm","libz",],strip: {none: true,},
}// 定义libavfilter
cc_prebuilt_library_shared {name: "libavfilter",srcs: ["lib/libavfilter.so"],export_include_dirs: ["include"],shared_libs: ["libavformat","libavcodec","libswresample","libswscale","libavutil",],strip: {none: true,},
}

AOSP中其他模块使用时,引用上述库即可。

http://www.r43.cn/news/371.html

相关文章:

  • 商城网站开发视频营销推广活动方案
  • 三水网站建设哪家好深圳最新消息今天
  • 河南工程学院网站建设站长工具
  • 国外做游戏的视频网站有哪些问题海外营销方案
  • 360建筑网挂靠官网软件下载福州seo视频
  • 网站技术架构图百度提交网站入口网址
  • 泸县住房城乡建设委网站网站怎么营销推广
  • 如何注册申请chn网站网站建设优化推广
  • 做网站要花多少钱广告投放方案
  • web网站如何做负载均衡商品推广软文写作500字
  • 武汉++外贸网站建设百度账号安全中心
  • 社区网站建设公司产品推广计划方案模板
  • 涞水网站建设做任务赚佣金的正规平台
  • 珠海品牌机械网站建设甲马营seo网站优化的
  • 优化网站教程百度官方认证
  • 网站建设公司用5g新闻源发稿平台
  • 怎么给我 的网站做关键词百度网盘客服电话24小时
  • 福建省建建设行业信用评分网站全国免费发布信息平台
  • 临沧网站制作创建网站需要多少资金
  • 如何建国际商城网站高端营销型网站
  • 做网站javaee前端seo怎么优化
  • 做网站哪些有没有免费的广告平台
  • 杭州企业网站开发网站建设排名优化
  • 做球迷网站专业seo网络推广
  • 服务器iis搭建网站潮州网络推广
  • 国外做ae模板网站大全指数网站
  • b2b网站排行榜b2b平台推广
  • 建立一个网站的步骤谷歌独立站
  • 赣州信息网seo专员岗位要求
  • 成都市成华区建设委员会网站宁波seo教程行业推广