个人介绍
精通C/C++、Qt和Python编程;
擅长SQLite和MySQL数据库编程;
擅长编写Http服务器;
精通解析文件系统:Refs、Ntfs、Exfat等;
喜欢研究音视频流媒体技术;
热于学习专研数字图像处理知识和技术;
工作经历
2020-03-01 -至今厦门唯实信息科技有限公司流媒体开发工程师
多媒体互动学生端安卓APP软件: 多媒体互动教学系统是由客户端和服务器组成。此系统和高清Camera设备一起绑定为高校的教师和学生提供便利的线上教学和学习服务。本人在这个项目中负责开发PC客户端程序和服务器。其中客户端是使用Qt+FFmpeg+mpv+OpenGL开发的多媒体互动PC端可执行程序,本人使用Qt搭建架构编写绘制界面,FFmpeg库和mpv库实现音视频广播(直播推流)、视频录像和播放音视频功能。客户端除了核心的音视频广播(直播推流)、视频录像和播放音视频功能外,还有文件管理、图片查看编辑、随堂小考、实验管理等其它具体和业务相关的功能模块。 物联网互动服务器在架构上由两部分组成。第一部分是流媒体服务器,专门用于视频汇聚和视频分发服务,使用开源SRS库搭建(支持RTMP协议)。另一部分是Http服务器,专门处理教学系统业务。程序由C/C++和Qt编程语言编写,使用LibEvent库作为Http服务器,MySQL作为数据存储容器。物联网互动服务器业务功能上主要由基础信息子系统、课堂信息子系统、数字图片子系统、视频分发服务、存储管理服务等组成,放在嵌入式Linux
2017-03-01 -2020-02-25厦门市美亚柏科信息股份有限公司高级后端工程师
基于Chromium内核的远程取证(网络爬虫)项目: 项目描述:“远程取证”是一款基于Windows平台针对境内外网站、网页邮箱、视频资源存证的产品。实现网页截图、视频资源固定、实时哈希计算等功能。 1、 本人在项目中负责用C++和Python语言,通过一套爬取网页数据算法和线程池模型实现对页面资源的下载和固定。其中,爬虫逻辑主要使用Python语言编写,它发送相关指令调用浏览器去下载保存页面资源。浏览器为了能听从和执行爬虫指令,需要用C++语言在Chromium内核中增加和修改相关DevTools协议。根据这套DevTools协议,爬虫就能根据爬取网页数据算法发送指令让浏览器固定网页数据到本地存储和分析。 2、 将Chromium内核源码编译出libcef库,将其嵌入到MFC应用程序中,使得MFC应用程序具有浏览器内核功能,主界面用Html页面和JavaScript来美化渲染,弥补MFC应用程序界面美化难和不足的缺陷。 3、 实现在Chromium中C++调用Python封装好的下载Ts视频片段模块功能。即使用Python根据m3u8索引文件内容下载Ts视频片段到本地,然后C++端调
2014-09-01 -2017-03-01苏州海的机电科技有限公司高级后端工程师
液晶模组PC上位机软件项目: 项目描述:工厂由于工艺原因,生产出的液晶屏在某些特殊的画面(如flicker画面)下会出现不同程度的闪烁。为了使屏里的液晶颗粒能在基本电压下校正,不出现画面闪烁。此软件开发的目的就是配合下位机通过电压基准校正液晶颗粒,减少画面闪烁。此程序利用MFC 的GDI/GDI+、SQLite数据库等技术绘制图形模组图片,然后将图片传送到下位机中存放,向下位机发送通信命令,控制下位机里的单片机将flicker模组图片映射到MIPI手机屏。然后结合算法配合下位机和CA310采集设备通过电压校正液晶颗粒调屏,将屏的闪烁度调到最低。
教育经历
2010-09-10 - 2014-10-10常熟理工学院计算机科学与技术本科
在大学期间参加实验室信息安全竞赛项目,做过远程控制软件,采用B/S架构,多线程多进程Socket通信。
技能
项目描述:本程序是一款内部电脑管控软件。拥有CMD控制台、文件传输、屏幕实时画面功能。本程序分为控制端和被控端两部分,这两部分采用socket阻塞模型通信(另1个版本采用IOCP结合socket异步模型通信),控制端向被控端发起主动连接,建立连接后,被控端根据控制端发送过来的“命令”执行相应的操作。其中CMD控制台采用Pipe管道实现DOS控制台来输入命令对被控电脑进行操作。文件传输采用多线程和套接字实现文件传递功能。屏幕实时画面功能可以实时查看某一个被控端计算机当前屏幕画面。
基于Chromium内核的远程取证(网络爬虫)项目: 项目描述:“远程取证”是一款基于Windows平台针对境内外网站、网页*、视频资源存证的产品。实现网页截图、视频资源固定、实时哈希计算等功能。 1、 本人在项目中负责用C++和Python语言,通过一套爬取网页数据算法和线程池模型实现对页面资源的下载和固定。其中,爬虫逻辑主要使用Python语言编写,它发送相关指令调用浏览器去下载保存页面资源。浏览器为了能听从和执行爬虫指令,需要用C++语言在Chromium内核中增加和修改相关DevTools协议。根据这套DevTools协议,爬虫就能根据爬取网页数据算法发送指令让浏览器固定网页数据到本地存储和分析。 2、 将Chromium内核源码编译出libcef库,将其嵌入到MFC应用程序中,使得MFC应用程序具有浏览器内核功能,主界面用Html页面和JavaScript来美化渲染,弥补MFC应用程序界面美化难和不足的缺陷。 3、 实现在Chromium中C++调用Python封装好的下载Ts视频片段模块功能。即使用Python根据m3u8索引文件内容下载Ts视频片段到本地,然后C++端调用这个Python封装好的模块功能后,使用FFMpeg命令行功能合成这些下载好的Ts视频片段成MP4文件。具体实现方式为:在C++端创建多个线程,为每个线程分配1个新建的Python解释器,然后每个线程使用新建的Python解释器调用Python模块提供的下载Ts视频片段功能,当下载完成后,再使用FFMpeg命令行功能合成这些下载好的Ts视频片段成MP4文件。 4、 修改FFmpeg官方源码包,即修改Configure、Makefile和*.c等文件,使其编译出Dll动态库,并封装导出接口函数提供给“远程取证”软件下载和固定音视频资源。