![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android音视频
文章平均质量分 86
Android音视频开发
Hdnw
Her determination never wavered.
展开
-
FFmpeg关键函数介绍
在FFmpeg中av_read_frame函数的作用是读取码流中的若干音频帧或者1帧数据。在解码视频时,每解码一个视频帧,需要先调用av_read_frame获取1帧视频的压缩数据,然后才能对该数据进行解码。avformat_open_input的主要功能是打开一个文件,读取header,不会涉及打开编码器。srcSlice[],:输入图像的每个颜色通道的数据指针。srcStride[]:输入图像的每个颜色通道的跨度。dst[]:输出图像的每个颜色通道数据指针。srcSliceH:处理多少行。原创 2023-09-29 23:11:09 · 745 阅读 · 0 评论 -
FFmpeg常用结构体分析
解复用器的目的就是从容器中分离(解析出来)不同的流,FFmpeg中的流对象为AVStream,它是由解复用器的read_header函数创建的,并保存在AVFormatConext的nb_streams(容器中的流条数)及stream数组中。FFmpeg 用AVPacket 来存放编码后的视频数据,AVPacket 保存了解复用之后、解码前的数据(仍然是压缩后的数据)和关于这些数据的一些附加信息,如显示时间戳(PTS)解码时间戳(DTS)数据时长、所在媒体流的索引等。原创 2023-09-29 22:11:12 · 355 阅读 · 0 评论 -
媒体编解码器MediaCodec
MediaCodec类可以访问底层媒体编解码框架(Stage或OpenMAX),即编解码组件。通常与MediaExtractor、MediaSync、MediaMuxer、Image、Surface和AudioTrack一起使用。它本身并不是Codec,它通过调用底层编解码组件获得了Codec的能力。原创 2023-09-29 15:48:50 · 2206 阅读 · 0 评论 -
H.264编码
视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像,由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,我们看到的就是动作连续的视频,这么多连续的图像数据如果不经过编码则数据量太大了。B帧:双向预测编码帧,记录了本帧与前后帧的差别,解码需要参考前面一个I帧或者P帧,同时也需要后面的P帧才能解码一张完整的图像。P:前向预测编码,记录了本帧跟之前的一个关键帧(或P)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。片的语法结构:片头规定了片的类型,属于哪个图像、有关的参考图像等;原创 2023-09-24 10:43:01 · 134 阅读 · 0 评论 -
音视频基础知识
音视频基础知识涵盖了与音频和视频相关的概念、技术和术语。原创 2023-09-23 20:51:28 · 107 阅读 · 0 评论 -
Android 引入FFmpeg
上面已经把 so 和 头文件 放置到对应的目录中了,但是编译器是不会把它们编译、链接、并打包到 Apk 中的,我们还需要在 CMakeLists.txt 中显性的把相关的 so 添加和链接起来。首先,需要下载 CMake 相关工具,在 Android Studio 中依次点击 Tools->SDK Manager->SDK Tools ,然后勾选。依次点击 File -> New -> New Project ,进入新建工程页面,拉到最后,选择 Native C++ 然后按照默认配置,原创 2023-09-23 10:45:38 · 1246 阅读 · 1 评论