当前位置: 代码迷 >> 综合 >> 音视频基础—封装,解码,重采样,像素格式,Android NDK,ABI,samba,ffmpeg下载
  详细解决方案

音视频基础—封装,解码,重采样,像素格式,Android NDK,ABI,samba,ffmpeg下载

热度:39   发布时间:2023-11-25 13:05:08.0

封装

从文件中,把音视频读出来

解码

解压出来,之后,视频需要显示,需要转换成显卡支持的格式,音频需要播放,转换成声卡支持的格式

像素格式 :视频需要转换像素格式

MPEG-4 :用于音频,视频信息的压缩编码标准

MPEG-4 Part 14 MPEG-4文件格式Part15    AVC文件格式

H264(AVC Part10)

常用的封装格式

AVI 压缩标准可任意选择 (现在都转成mp3或mov格式了)

FLV ts(电视直播,也适应做点播) 流媒体格式 

ASF 微软 点播

视频

H264(AVC Part10),wmv,XviD(Part2),mjpeg(没有上下文依赖,每一帧都是独立的,坏处是压缩率低,同样大小的视频,比H264压缩差很多)

音频

(有损压缩)acc MP3 

(无损压缩,效果好)ape flac

7.开发环境的准备

AS sdk NDK gradle  cmake  

8.SDK目录及内容分析

platform-tools :该文件夹下放了Android平台的相关工具比如adb.exe、sqlite3.exe

platform:不同版本的SDK

ndk-bundle:交叉编译的工具,后面编译ffmpeg

tools:Android开发、调试的工具性能监控

10.NDK

platforms 系统依赖库

toolchains交叉编译工具 gcc Id

12.安卓NDK相关概念ABI、NEON、JNI和CMAKE分析

https://developer.android.google.cn/ndk/downloads/    然后安装到Ubutu里面

1.ndk-build 脚本用于在NDK中心启动构建脚本

2.

3.生成二进制文件

4.现在新版本统一使用Cmake

Java原生接口(JNI)

1.Java和C++组件用以互相沟通的接口

2.

3.

4.原生共享库:NDK从原生源代码构建这些库或.so文件

5.原生静态库:NDK也可构建静态库或.a文件,您可以关联到其他库

13.NDK中CPU的应用二进制界面ABI

(1)不同Android手机使用不同的CPU,因此支持不同的指令集

(2)CPU与指令集的每种组合都有其自己的应用ABI

ABI包含信息

(1)CPU指令集

(2)内存字节顺序。

(3)可执行二进制文件的格式

(4)解析的各种约定。对齐限制,堆栈使用和调用函数

(5)库集

支持的ABI            https://developer.android.google.cn/ndk/guides/abis?hl=zh_cn

NEON

(1)NEON提供一组标量/矢量指令和寄存器(与FPU共享)armeabi默认

(2)

(3)

(4)

(5)

14.Ubuntu虚拟机及常用工具安装并配置samba共享目录

使用NDK编译ffmpeg安卓库编译

ubuntu NDK neon、硬解码

安装Ubuntu在VMware虚拟机上 https://blog.csdn.net/qq_40950957/article/details/80467513

  

直接使用XShell6连接阿里云

apt-get: command not found,这个的出现是因为系统的原因。

Linux系统分为两种:
1.RedHat系列:Redhat、Centos、Fedora等

2.Debian系列:Debian、Ubuntu等

RedHat系列的包管理工具是yum

Debian系列的包管理工具是apt-get
  更新数据源(重新去下载一下数据库的列表)

yum install openssh-server

安装编辑工具

下载 ndk    连接:https://developer.android.google.cn/ndk/downloads/   直接下载速度有10多M/s

安装samba共享工具

vim /etc/samba/smb.conf

添加   [root]
                 comment = root
                 path = /root
                 browseable = yes
                 read only = no

按i 就进入插入模式,按esc就进入命令模式: 就输入命令操作的,按h是帮助文件,所以按esc退出后输入:wq保存编辑

输入权限,和重启

 

15.ffmpeg源码下载在Android下的编译参数分析讲解

wget http://ffmpeg.org/releases/ffmpeg-3.4.tar.bz2 

解压编译

tar -xvf ffmpeg-3.4.tar.bz2    (按tab键可以迅速补充)

yum install make      安装打包工具

./configure  做精简,生成make文件

make -j16   (读取)集成命令,把编译执行好(16为多线程)

make install   设置出一个输出路径,头文件,库,文档都复制到安装路径当中去(把生成文件发布出去)

configure

--prefix 输出目录

--enable 开启模块,硬解码,neon

--disable 禁止模块,禁止ffmpeg工具,加快编译速度

交叉编译参数 cross-prefix arch target cpu

sysroot extra-cflags

  相关解决方案