Category Archives: 编程之美

2017
11-26

Google ProtoBuf协议介绍 562 VIEW

Protocol buffers(简称protobuf)是谷歌提供的一种轻便高效的结构化数据存储格式,类似于xml与json,可用于结构化数据的序列化。protobuf是一种二进制格式,比xml更小,更快,更简洁。适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式,能够减少数据传输量。据了解微信(例如微信客户端蓝牙外设协议)与QQ也在使用protobuf,我目前在学习的百度开源的rpc框架brpc也在使用。protobuf目前提....Read More >
2016
10-07

Intel Media SDK 内存优化(转) 4342 VIEW

Intel Media SDK 内存优化(转) 简介 Media SDK 是一个软件开发库,包含解码、视频处理和编码三大模块。利用 Intel 平台的硬件加速能力, Media SDK 为低端用户提供了优秀的高清视频质量,极大的降低了播放高清视频的硬件门槛。此外,强大的视频 APIs 也减轻了程序开发者的工作负担,使他们能够集中精力去处理程序的逻辑模块,而不必关心于 Media SDK 内部的复杂编解码逻辑及其如何提高效率。本篇文章将....Read More >
2016
05-28

网络字节转换到本地字节的函数模板 855 VIEW

在做视频文件解析开发时,经常需要进行网络字节到本地字节的转换。在视频文件中,相关数据是以网络字节存储的,比如视频的宽,定义为uint_32类型,读取时我们需要转换为本地字节序才可以得到正确结果。操作系统自带api可以帮助我们进行字节序的转换,如下所示函数与具体平台无关: [crayon-5e25dbe4241c7137837643/]我们也可以用c++函数模板实现一个,方便使用,我一般都是用自己的函数模板的: [crayon-5e25dbe4241cf34543572....Read More >
2015
12-25

解决Ubuntu下vlc无法播放文件 4027 VIEW

最近在linux下使用VLC播放器,之前都可以好好播放的,可是手贱卸载重装了一次,之后都无法播放任何文件,总是如下提示: [crayon-5e25dbe42447a838056423/]后来使用了: [crayon-5e25dbe424482973391146/] 卸载也是不行,重新安装还是会报Your input can't be opened:VLC is unable to open the MRL的错误,后来通过如下命令卸载解决: [crayon-5e25dbe4....Read More >
2015
07-21

MFC WebBrowser控件如何实现滚动条滑动 1306 VIEW

最近在写一个自动刷流量的程序,用到了WebBrowser 控件,通过该控件往程序嵌入一个IE浏览器,MFC中如何嵌入该控件可以看下参考链接1。由于要自动刷流量,所以就要模仿用户平时浏览网页的习惯,也就是打开网页,然后慢慢向下滚动鼠标。在程序中我是通过滑动右侧滚动条实现的。刚开始我的代码是参照链接3给的,不过该代码在有些网页下实现不了滚动条滑动,也就是没反应。我上网Google了下,发现好多人也遇到类似情况,比如链接2与链接4中的内容,不过都没人给出答案。我自己也试了好多种方法,比如修改W....Read More >
2015
07-15

PortAudio捕获输出音频 1579 VIEW

记得前面说到使用PortAudio抓取声卡输出音频,通过PortAudio确实可以实现,但是我研究发现无法基于PortAudio使用Wasapi抓取计算机输出音频,PortAudio只能使用Wasapi抓取麦克风的输入音频,而不能抓取计算机播放的声音。先说下PortAudio如何抓取声卡输出: 1)条件:不开启立体声混音。首先我们要枚举所有设备,然后获取各个设备信息,得到设备的HostApiType,代码实现如下: [crayon-5e25dbe4249d5865358958/] ....Read More >
2015
06-25

MFC自绘带背景颜色标题栏 3754 VIEW

MFC自绘带背景颜色标题栏 最近在写一个EDID文件生成器,可以根据输入的一些参数生成EDID文件,大多数字节是固定的,主要是详细时序这几个字节的计算,界面用的是MFC,不过我重绘了,因为MFC原生界面太丑了。下图是EDID生成器初步的效果:本文主要讲怎么绘制带颜色的标题栏,就像上图的蓝色背景标题栏。 1)首先是根据向导创建一个普通对话框程序,然后修改对话框Border属性为None。2)在void....Read More >