工作小结(三)

了解整个编解码过程,编写demo将本地yuv视频通过编解码流程之后显示。

这是一个过渡任务,最开始是为了理清整个编解码过程,以及每个过程的重要函数。接着用来验证任务二(编解码类框架)的代码以及H265模块是否有问题。最后又结合任务二一起完成任务四的第一部分(为码流对比工具添加H265模块)。

整个编解码的过程如下:

首先是数据采集,在这个步骤中主要设置参数以及设置回调函数write_video_frame(参数包括设备参数,视频源分辨率。回调函数的作用是对采集到的数据进行处理)。接着就是设置编解码算法的必要参数。参数设置好之后开始采集数据start()。参数正确即触发回调函数。

由于任务二的整合编解码框架,这里编解码就很好初始化了

string config_text = make_XXX_video_config_json_text(codec_config);//将编解码配置参数格式化为字符串
m_video_encoder = video_encode_type::create(codec_id);//根据codec_id创建编码指针
m_video_encoder->setup_config(config_text);//设置参数
m_video_encoder->install_encode_hook(boost::bind(&CTestCodeDlg::decode_video_frame, this, _1, _2, _3));//编码完一帧马上解码
m_video_encoder->open();//打开编码器
m_video_decoder = video_decode_type::create(codec_id);//根据codec_id创建解码指针
m_video_decoder->setup_config(config_text);//设置参数
m_video_decoder->open();//打开解码器

write_video_frame->handle_video_frame->encode->decode->display.

1.这里其实是write_video_frame绑定handle_video_frame操作,handle_video_frame绑定encode操作。因为可能是多线程编解码。所以write和handle相当于两个队列操作。一个读队列,一个写队列。

2.这里有两次格式转换:

第一次编码之前 把任意格式转换成YUV420P 用来编码

第二次解码之后,显示之前。解码之后还是YUV420P格式,转换成RGB格式来显示

时间: 2024-10-03 20:10:08

工作小结(三)的相关文章

如何有效地与开发人员一起工作(三)

合作可能会失败 紧密的合作关系是对时间的投资.有时候投资免不了得不到回报: 你的程序员是如此的固执以致你尖叫起来 – 只可惜很可能你的尖叫声还没他尖叫着说你固执来得响亮. 程序员可能会看起来故意阻碍或令人误解.(他也许在尝试通过使用公正的手段或不正当的手段来指示你从而节省他的时间.但是有时候他就是不可避免地粗心大意,或尝试隐藏他的无能,或其他什么原因.) 你的期望值没有达到.程序员对你做的事情不高兴. 我个人倾向于向糟糕的投资倾注更多的精力,更多的时间.那是错误的.有时候你必须承认计划失败并转向

javascript 学习小结 (三) jQuery封装ajax尝试 by FungLeo

javascript 学习小结 (三) jQuery封装ajax尝试 by FungLeo 前言 在JS学习中,对于原生的很多东西我理解得并不透彻.但是使用jQuery来操作DOM,基本上还是非常熟练的.但是对于AJAX数据交互的处理,我不是很理解. 近期团队交给我一个后端全接口提供给我的项目.我要利用这些接口来自己组织前端代码.为了学习,我决定不使用VUE或者其他的前端框架来做.而是只使用jQuery框架,数据的部分全部使用拼接字符串的形式实现. 获取数据,显示数据,提交数据. 在这个项目中(

Apache 工作的三种模式:Prefork、Worker、Event

Apache 的三种工作模式(Prefork.Worker.Event) Web服务器Apache目前一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式. 它们分别是prefork,worker.event,它们同时也代表这Apache的演变和发展. 本文原文转自米扑博客:Apache 工作的三种模式:Prefork.Worker.Event 如何查看我们的Apache的工作模式呢?可以使用httpd -V 命令查看,如我安装的Apache 2.4版本.

第二阶段团队冲刺个人工作总结三

项目个人工作总结: 今天是我们团队项目第二次冲刺的第三天 ,个人总结如下: 昨天:昨天我把侧滑菜单弄好了 今天:完成侧滑菜单上的按钮功能,并且完成各个按钮所调用的界面设计 遇到的困难:因为我们侧滑惨淡的3个功能调用的界面大同小异所以可以把一个界面重复使用但是我一开始没意识到

Maven学习小结(三 基本概念)

1.Maven POM POM(Project Object Model)项目对象模型,是用Maven来管理项目里的一个叫做pom.xml的文件.所有的项目配置信息都被定义在这个文件中, 通过这个文件Maven可以管理项目的整个生命周期,包括清除.编译,测试,报告.打包.部署等. 2.Maven Plugin Maven的每个具体任务都是由插件完成的.(see more https://maven.apache.org/plugins/index.html#) 3.Maven Coordinat

八年工作小结,以及读书笔记的序

再过10天就工作八年了,时间匆匆而过,这八年做了什么,学会了什么,有必要做一个简单的小结. 工作的前两年用asp和asp.net做企业网站,严格来说这活上学的时候就开始干了.工作加上私单做了得有几百个吧,没什么技术含量,如果说学会了什么,那就是做了几套CMS系统,以便更快的做网站,再就是做了一个购物网站,熟悉了电子商务网站的基本流程. 第三年到了一个做民间借贷的公司,在这个公司的主要工作是开发了一个民间借贷的门户网站.现在看来这个网站做的很粗糙,也就是恰好能跑起来而已.通过这个项目学会了三层架构

[工作笔记之二] 测试工作小结

最近几周跟了两个项目,确切说是一个项目和一个任务. 一.接口测试 任务内容是关于接口的,这次对接口测试有了一个新的认识,顺便感慨一下以前的自己太蠢了.以前测接口,研发都会告诉我怎么测,看到什么样的返回值就就算测完了,所以以前测接口都很快.前段时间整理文档,发现有个老大的测试用例里有关于接口测试的,看进去才知道我测接口测得是多么粗糙啊. 总结一下接口测试: 1. 接口测试也是要写测试用例的. 2. 测试用例中要明确接口地址.各参数类型及意义.返回值的类型.返回值中各字段的含义. 3. 接口中每个参

【工作笔记三】非常全面的讲解Hosts文件

原文:http://www.cnblogs.com/zgx/archive/2009/03/10/1408017.html 很奇怪有很多人不知道Hosts是什么东西.在网络病毒日渐盛行的今天,认识Hosts其实是很有用的,因为有好多的网页木马都盯上了这个文件,而在很多时候,您只需打开这个文件做一个小小的修改,就完全可以解决您认为非常困难的问题. 一.Hosts文件所在地址 Vista.Xp和2000和2003等系统:在C:\windows\system32\drivers\etc文件夹中. Wi

工作小结(By魔芋)

今天是2016年2月24日星期三,天气还不错,阳光普照. 我是魔芋,写个工作总结,记录一下. 开发重点有数据展示. 涉及到的技术有: SVG地图绘制(通过经纬度,生成SVG地图,绑定点击事件,跳转到相应的省市地图) 以下截图为山东的SVG地图:(网上只找到全国的省级的SVG图.所以相应的市级的只能靠自己了.) echart 饼状图,柱状图,折线图等多种方式来显示数据结果. ajax.后端使用的java.需要定时从后台数据库获取数据. 订单处理. 使用表格类插件.dataTable表格.datep