
音视频
文章平均质量分 79
Easyhood
Android开发工程师
展开
-
WebRTC使用流程文述
WebRtc使用时需要先搭建两个服务器一个是信令服务器,一个是ICE服务器,搭建方法请见此博客1,每个客户端到服务器的链路路径称之为SDP2,WebRTC拿到每个客户端的SDP后,通过webRtc的算法算出每个客户端之间的最短路径,从而让他自己实现p2p打洞连接3,首先要搭建服务器端,一个是信令服务器,也就是房间服务器,用于SDP交换;一个是ICE服务器,也就是打洞服务器,交换内网最近的路由。原创 2023-04-04 20:38:43 · 949 阅读 · 0 评论 -
FFmpeg使用流程文述
1,去官网上下载代码,交叉编译成so文件和头文件配置进项目2,每个视频容器都会有音频视频两个轨道,需要FFmpeg分别拿到音频索引和视频索引3,读取视频需要在子线程中进行,采用生产消费的模式,并需要队列4,当我们的生产者读取到视频数据包的时候,什么都不管,将它放置在消费者的队列中5,消费者也叫视频解码线程,要用一个死循环,也就是解码器,不断的去解码AVPacket,解码成原始画面6,我们假设这个解码后的数据叫做AVFrame。原创 2023-04-03 03:43:30 · 800 阅读 · 0 评论 -
opengl使用流程文述
opengl中是通过三个点确定一个面进行着色,总体思路为确定顶点着色器形成矢量图形进行栅格化==》最后再通过片元着色器进行上色的过程1,先用一个view继承自也就是2, 在构造方法中用;选用2版本,2版本稳定一些3, opengl的渲染方式,手动和自动两种,自动的话直接在构造方法中调用;4, 接着初始化CameraX(此处省略)5,回调接口onUpdate,渲染在哪里6,我们要通过实现Preview的接口,从onUpdate的参数中拿到CameraX的预览图像,我们从output中通过方法拿到。原创 2023-03-31 14:49:02 · 728 阅读 · 0 评论 -
X264使用流程文述
3,3个参数,第一个是x264参数指针,第二个是编码速度,因为是直播,所以采用最快。编码规格,有一个表格上详细标出什么规格下有什么样的码率,帧率要求。8,设置帧率相关参数,帧率是个有理数,使用分数形式表示,6,接着设置码率模式相关参数,有恒定质量,恒定码率,,第三个是编码场景设置,直播一般选用最低延迟的。2,设置默认的编码器参数,调用。4,接着设置编码器的编码规则,编码器的编码图像的数据格式,格式的图像数据, 先将。格式的视频数据的过程。的方式,之后对齐进行赋值。的支持的宽高设置给先。原创 2023-03-29 10:58:39 · 506 阅读 · 0 评论 -
Native库的交叉编译
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说: 我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;原创 2023-03-29 04:48:22 · 721 阅读 · 0 评论 -
RTMP使用流程文述
在现在网络流媒体的协议中,最常见的就为RTMP,在一搬的工程或项目想要实现rtmp,需要借助rtmpdump来实现,我们可以去rtmpdump官网去下载资源包,去集成在我们的项目中,用以实现rtmp。在android的音视频项目中,我们在获取到视频数据后,需要利用rtmpdump主要做两件事,1是建立连接,2是发送数据。(ex:在安卓中如果解码速度和发送数据包速度差异过大,可以采用数据队列存储的方式,例如LinkedBlockingQueue)原创 2023-03-28 19:18:53 · 1068 阅读 · 0 评论 -
JNI原理及常用方法概述
JNIEnv概念 :JNIEnv是一个线程相关的结构体, 该结构体代表了 Java 在本线程的运行环境。通过JNIEnv可以调用到一系列JNI系统函数。JNIEnv线程相关性:每个线程中都有一个 JNIEnv 指针。JNIEnv只在其所在线程有效, 它不能在线程之间进行传递。注意:在C++创建的子线程中获取JNIEnv,要通过调用JavaVM的AttachCurrentThread函数获得。原创 2023-03-25 18:20:51 · 3018 阅读 · 0 评论 -
音视频硬编解码流程文述
首先通过的得到我们录屏的Intent,用的方法就可以进行录屏。如果说我们想得到录屏生成的H264文件的话,在开始录屏后我们在开始录屏后在中就可以从的方法可以得到对象。然后我们就可以通过的方法传入avc参数得到一个format,再通过format的setInteger方法去设置编码格式,通常会设置四个参数帧率,关键帧频率,比特率/码率,颜色格式得到一个编码格式的format。接着我们通过MediaCodec的的方法往里传入avc参数来得到一个mediacodec。然后我们用这个mediaCodec的。原创 2023-03-24 17:15:15 · 499 阅读 · 0 评论