webrtc 源码分析视频编码器创建,编码的过程
2023-09-14 09:12:42 时间
接下来:10-8
附录:对于视频引擎来说重要的不是视频引擎的类,而是WebRtcVideoChannel,所有的数据流传都是以WebRtcVideoChannel为核心进行逻辑组织的。
创建WebRtcVideoChannel的过程:
一、编码器如何拿到视频分发器的数据
二、视频编码器的创建
三、总略图:包含视频编码器的编码以及把编码好的数据传递给上层回调
一、编码器如何拿到视频分发器的数据
视频编码器是如何获取分发器获得的视频数据呢,当视频编码器注册进分发器后,通过VideoStreamEncoder::OnFrame(…)这个函数来获取分发器给的视频帧数据。
通过PostTask(…)创建任务,并将任务插进队列,这个任务是一个匿名函数,主要调用MaybeEncodeVideoFrame(incoming_frame, post_time.us())函数,下面图片中这个函数名字拼写有误,这个函数在src/video/video_stream_encoder.cc中。
二、视频编码器的创建
那么在MaybeEncodeVideoFrame中做了什么呢:
下图的if(…)是检查有没有创建编码器,如果没有就调用ReconfigureEncoder()创建。编码器是什么时候开始创建的呢,是在第一帧数据来的时候开始创建的。
如果已经创建好编码器则调用EncodeV
相关文章
- YUV编码格式
- 监控视频编码研究进展摘要汇总
- Python(字符编码)
- DirectShow音频采集pcm,实时编码AAC,附源码
- url的编码问题
- 【JAVA】java编译错误:编码UTF8/GBK的不可映射字符
- Atitit 文件上传功能的实现 图片 视频 目录 1. 上传原理1 1.1. http post编码 multipart / form-data1 1.2. 临时文件模式 最简单2 1.3
- Atititi ui之道 attilax著 v3 s11.docx 1. 概览2 1.1. 软件设计可分为两个部分:编码设计与UI设计2 2. 用户界面设计的三大原则是:置界面于用户的控制之下;
- .Net MVC订单后台管理系统源码编码过程
- 实现RTMP协议发送H.264编码及AAC编码的音视频
- Redis的那些事儿:关系型和非关系型数据库,非关系型数据库的类型,redis数据类型、编码格式、高性能、可以做什么、分布式锁失效的原因,string为采用sds数据类型,为什么是二进制安全的,
- android平台Camera采集数据ffmpeg进行编码探究
- VAE--就是AutoEncoder的编码输出服从正态分布