音视频开发基础 FFmpeg 是市面上领先的多媒体框架,能够解码、编码、 转码、复用、解复用、流式传输、过滤和播放人类和机器创建的几乎任何内容。支持所有常见的音视资源,支持跨平台开发。 中文网站:https://ffmpeg.github.net.cn/about.html 英文网站:https://ffmpeg.org/download.html。截止2025年最新的ffmepg版本为7.1.1。2025年3月 2025-07-03 音视频 #Android
H.264编解码介绍 为什么要编码?视频本质上就是一张张连续的图片快速播放。假设我们现在有24张联系的图片,将他们在1秒内快速切换,那么就形成了一个1秒的视频。 人眼睛的敏感度有限。一般来说,24到30 FPS之间的帧率已经足够让人感觉到动作的流畅性。但是就算如此,如果播放一个1分钟的1080P视频: 这实在太大了,所以我们需要使用编码的方式去压缩数据。 编码的目的:编码的目的,就是为了压缩。各种视频编码方式, 2025-05-12 音视频 #Android
音视频基础知识 音视频基础1. 基础概念什么是音视频技术?音视频技术其实就是音频技术和视频技术的一个统称,在技术处理上,其实音频和视频是要分开处理的。 而且要注意一点,音视频从开始收集数据到最后展示都是离不开硬件设备的,所以在以后的开发过程中,要做好与硬件打交道的心理准备了。 音视频的主要处理过程: 采集。比如从客户端的摄像头、麦克风和本地原始文件等,获得基础的音视频数据; 预处理。在这个阶段其实就是对音 2025-05-08 音视频 #Android
ffmpeg交叉编译 什么是交叉编译?交叉编译是指在一种平台上编译程序,使其能够在另一种不同的平台上运行的过程。这种编译方式主要用于开发嵌入式系统、移动设备和其他受限环境中的应用程序。 交叉编译的基本概念 本地编译:在当前的平台上编译程序,生成的代码直接在当前平台上运行。例如,在x86架构的电脑上编译的程序直接在x86架构的电脑上运行。 交叉编译:在一种平台上编译程序,生成的代码在另一种平台上运行。 2025-05-08 Android #Android
线程的控制 线程控制POSIX线程库在上面提到,Linux在内核层面没有专门为线程设计一套系统调用接口,但是在应用层为用户提供了一套原生线程库。 pthread线程库就是应用层的原生线程库: 应用层指的是这个线程库并不是系统接口直接提供的,而是由第三方帮我们提供的 原生指的是大部分Linux系统都会默认带上该线程库 与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以”pthread_“打头的 要 2025-04-13 Linux #线程
Linux中的线程 线程概念什么是线程 在一个程序里的一个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的控制序列” 一切进程都至少有一个执行线程 线程在进程内部运行,本质是在进程地址空间内运行 在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更轻量化 透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理分配给每个执行流,就形成了线程执行流 进程的创建伴随着进程控制块,进程地址 2025-04-13 Linux #线程
操作系统 第四章 操作系统概述计算机系统由两部分组成: 硬件 软件 通常把未配置软件的计算机称为裸机。 操作系统目的是:为了填补人与机器之间的鸿沟,即建立用户与计算机之间的接口,而为裸机配置的一种系统软件。 操作系统也包括了系统软件。 操作系统在计算机系统中的地位: 操作系统是用户与计算机之间的接口,它在计算机系统中占据重要而特殊的地位,所有其他软件,如编辑程序、汇编程序、编 2025-04-11 软件设计师 #操作系统
程序设计语言 第二章 程序设计语言程序设计语言的基本概念 解释器:翻译源程序时不生产独立的目标程序。 解释程序和源程序要参与到程序的运行过程中。 编译器:翻译时将源程序翻译成独立保存的目标程序。 机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的运行过程。 许多程序设计语言规定,程序中的数据必须具有类型,其作用是: 便于为数据合理分配存储单元 便于对参与表达式计算的数 2025-04-11 软件设计师 #计算机系统知识
组件化 组件化是大型App的标配 1.为什么需要组件化? 代码耦合:项目增大后易失去层次感,容易出现不同业务间的代码马互相调用,高度耦合。组件化则可以实现各模块间不相互依赖,但可以互相交互、任意组合,高度解耦。 编译时间长:项目代码越多编译时间越长。而组件化可以分模块打包进行编译测试。代码复用率低:不同业务间可能会出现重复的基础代码,但是并没有有被抽离出来进行复用。组件化可以将基础组件或功能抽离出来进 2025-03-29 Android #Android