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

泉州效率网络网站建设启动网站建设的请示

泉州效率网络网站建设,启动网站建设的请示,做百度微信小程序都有哪些网站,外发加工网app准备工作 环境准备 1.Windows安装Oracle VM VirtualBox 7.0.10,安装ubuntu-22.04.3。 坑一:无法往虚拟机里拖放复制文件,解决办法:登录Ubuntu虚拟机时切换到xorg方式登录,参考地址:Ubuntu Desktop 22.04…

准备工作

环境准备

1.Windows安装Oracle VM VirtualBox 7.0.10,安装ubuntu-22.04.3。

坑一:无法往虚拟机里拖放复制文件,解决办法:登录Ubuntu虚拟机时切换到xorg方式登录,参考地址:Ubuntu Desktop 22.04 无法实现拖放复制操作解决办法-CSDN博客

下载文件

下载ndk25

官网下载:ndk官网
网盘下载:android-ndk-r25c-linux.zip

注意,这是linux环境下的ndk。

下载FFmpeg 5.1.3

官网下载:FFmpeg官网
网盘下载:FFmpeg 5.1.3

解压文件

解压文件:


#解压ffmpeg-5.1.3.tar.xz 
tar -xf ffmpeg-5.1.3.tar.xz#解压android-ndk-r25c-linux.zip 
unzip android-ndk-r25c-linux.zip 

 ndk配置环境变量

配置环境变量命令:sudo gedit ~/.bashrc   注意:替换为你的ndk路径

export NDK_HOME=/你的ndk路径/android-ndk-r25c
export PATH=$NDK_HOME:$PATH  
输入命令 ndk-build查看配置环境变量成功没,只要没出command not found就证明环境变量配置成功,如果成功显示如下,

下载所需编译软件

首先更新包列表:

sudo apt update

然后下载需要的编译软件

sudo apt install autoconf \
automake \
build-essential \
cmake \
git-core \
libass-dev \
libfreetype6-dev \
libgnutls28-dev \
libmp3lame-dev \
libsdl2-dev \
libtool \
libva-dev \
libvdpau-dev \
libvorbis-dev \
libxcb1-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
meson \
ninja-build \
pkg-config \
texinfo \
wget \
yasm \
zlib1g-dev \
libunistring-dev \
libaom-dev \
libdav1d-dev \
pkg-config

配置root用户

注意:编译的时候用root用户,我用普通用户编译失败

普通用户登录成功后设置 root 用户的登录密码,然后 su 登录

$ sudo passwd root
[sudo] password for dummy:  			# 此处需输入普通用户的登录密码
New password:					# 此处输入 root 用户的登录密码(新设置密码)
Retype new password:				# 此处再次输入 root 用户的登录密码(确认与上面的密码输入一致)
passwd: password updated successfully
$ su
Password:					# 此处输入上面设置的 root 用户登录密码,回车即可登录至 root 用户
# exit						# 退出登录 root 用户,回到普通用户登录态

到这一步编译所需的准备工作就做完了,接下来终于可以开始编译了。

 编译FFmpeg

修改FFmpeg的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)'

 

在FFmpeg目录下新建build_android.sh,想了解详细配置参数请前往这里。

# touch 新建文件
[root@CentOS6 ffmpeg-5.1.3]# touch build_android.sh
# vim 编辑build_android.sh
[root@CentOS6 ffmpeg-5.1.3]# vim build_android.sh

写入脚本内容:

#!/bin/bash
#特别注意: 以下路径需要修改成自己Linux系统中的NDK目录!前面上传的ndk解压文件当中
TOOLCHAIN=/usr/local/src/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64
# 最低支持的android sdk版本
API=21
# --extra-cflags中添加'-DVK_ENABLE_BETA_EXTENSIONS=0', 防止引用vulkan_beta.h头文件
function build_android
{
echo "Compiling FFmpeg for $CPU"
./configure \--prefix=$PREFIX \--disable-neon \--disable-hwaccels \--disable-gpl \--disable-postproc \--enable-shared \--enable-jni \--disable-mediacodec \--enable-small \--enable-gpl \--disable-decoder=h264_mediacodec \--disable-static \--disable-doc \--disable-programs \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--disable-avdevice \--disable-symver \--cross-prefix=$CROSS_PREFIX \--target-os=android \--arch=$ARCH \--cpu=$CPU \--cc=$CC \--cxx=$CXX \--enable-cross-compile \--sysroot=$SYSROOT \--extra-cflags="-DVK_ENABLE_BETA_EXTENSIONS=0 -mno-stackrealign -Os -fpic $OPTIMIZE_CFLAGS" \--extra-ldflags="$ADDI_LDFLAGS" \$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
echo "The Compilation of FFmpeg for $CPU is completed"
}#armv8-a
ARCH=arm64
CPU=armv8-a
# r21版本的ndk中所有的编译器都在/toolchains/llvm/prebuilt/darwin-x86_64/目录下(clang)
CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang
CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++
# NDK头文件环境
SYSROOT=$TOOLCHAIN/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
# so输出路径
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-march=$CPU"
build_android# 交叉编译工具目录,对应关系如下
# armv8a -> arm64 -> aarch64-linux-android-
# armv7a -> arm -> arm-linux-androideabi-
# x86 -> x86 -> i686-linux-android-
# x86_64 -> x86_64 -> x86_64-linux-android-# CPU架构
#armv7-a
ARCH=arm
CPU=armv7-a
CC=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang
CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang++
SYSROOT=$TOOLCHAIN/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "
build_android# #x86
# ARCH=x86
# CPU=x86
# CC=$TOOLCHAIN/bin/i686-linux-android$API-clang
# CXX=$TOOLCHAIN/bin/i686-linux-android$API-clang++
# SYSROOT=$TOOLCHAIN/sysroot
# CROSS_PREFIX=$TOOLCHAIN/bin/i686-linux-android-
# PREFIX=$(pwd)/android/$CPU
# OPTIMIZE_CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"
# build_android# #x86_64
# ARCH=x86_64
# CPU=x86-64
# CC=$TOOLCHAIN/bin/x86_64-linux-android$API-clang
# CXX=$TOOLCHAIN/bin/x86_64-linux-android$API-clang++
# SYSROOT=$TOOLCHAIN/sysroot
# CROSS_PREFIX=$TOOLCHAIN/bin/x86_64-linux-android-
# PREFIX=$(pwd)/android/$CPU
# OPTIMIZE_CFLAGS="-march=$CPU -msse4.2 -mpopcnt -m64 -mtune=intel"
# 方法调用
# build_android

赋权限755

在FFmpeg目录下的ffbuild目录中,将图中sh文件权限改为755,否则编译过程中可能报错无权限执行该文件。build_android.sh文件也赋权一下。

chmod 755  build_android.sh
  • 执行脚本
./ build_android.sh

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 编译成功,可以看到已经生成了.so动态库文件。

坑二:最后强调:赋权限和执行build_android.sh  都使用root用户,我普通用户编了半天也不成功。

参考连接:

FFmpeg5.1.3编译动态库详细教程(基于Linux虚拟机)-CSDN博客

 【Android音视频开发】FFmpeg库编译详解(2022最新版)_android 编译ffmpeg_JesseAndroid的博客-CSDN博客

 【精选】ffmpeg编译参数详解_--disable-swscale-alpha-CSDN博客

http://www.yayakq.cn/news/291281/

相关文章:

  • 紫金网站建设公司彩票网站注册
  • 免费的推广网站有哪些建设工程招标公告在哪个网站
  • 做网站很赚钱吗东莞市火速网络科技有限公司
  • dede搭建网站教程长沙传媒公司招聘
  • 三艺网站建设网站的主题定位
  • 靖州网站建设网站宣传图
  • pycharm 做网站哪个好百万网站建设报价
  • 网站seo测评课程网站建设技术
  • 亚马逊网站如何做商家排名建立传媒公司网站
  • 宁夏固原住房和建设局网站做一个自己的网站需要什么
  • 北京做网站好WordPress nas
  • 网站内套网站代码茂名放心营销网站开发
  • 网站建设在线学习网站开发需求分析说明
  • 怎么申请免费企业网站精选赣州网站建设
  • 电影手机网站建设淘宝便宜的团购网站建设
  • 产品销售型企业网站一元友情链接平台
  • 作风建设年网站阿里wordpress 安装
  • 手机版网站源码拉链网站源码
  • 建网站后如何维护青岛广告设计与制作公司
  • 霍尔果斯建设局网站it前端是做网站的
  • 大庆做网站找谁建立营销型网站
  • 贵州能源网站 中企动力建设网站数据
  • 网站制作公司有哪些证宣传软文是什么
  • 网站建设与推广策划案案例西安营销推广
  • 新泰网站制作公司商业街网站建设方案
  • 建设网站应该注意的地方农产品网站建设投标书
  • 西安网站建设云速网络建设多语言网站
  • 网站标题 逗号北京百度公司地址在哪里
  • 银锭网那个网站做的 好化妆品公司网站源码
  • 做视频网站需要流媒体吗青岛市崂山区建设局网站