思考的轨迹

人若无名 专心练剑

Windows上的音频采集技术

| Comments

前一段时间接到一个任务,需要采集到声卡的输出信号,以便与麦克风的输入信号进行混音。

之前一直没有研究过音频的相关技术,这次就顺便抽出一点时间去了解了一下Windows上采集音频的相关技术。

对于音频处理的技术,主要有如下几种:

  • 采集麦克风输入
  • 采集声卡输出
  • 将音频数据送入声卡进行播放
  • 对多路音频输入进行混音处理

程序员的代码编辑器–Sublime Text 2

| Comments

===目录===

  • 在Windows/Ubuntu上安装Sublime Text 2
  • 在Windows/Ubuntu上搭建Sublime Text 2的C/C++编译环境
  • 使用Sublime Text 2编写、编译、运行C++代码
  • 推荐几个程序员喜欢的Sublime Text 2插件
  • 使用Sublime Text 2浏览Source Code
  • 使用Sublime Text 2和Github Gist管理代码片段
  • 开启Sublime Text 2中的VIM功能
  • Sublime Text 2与坚果云和HK4WIN的配合使用

0.序言

元旦小长假前几天偶然中接触到Sublime Text 2, 初步使用下来感觉很不错,是又一款比较适合程序员使用的文本编辑器。

在Sublime Text 2之前,一直比较喜欢使用VIM和Notepad++,其中VIM主要用来查看一些源代码文件或编辑一些文本,

而Notepad++更多是用来替代UltraEdit查看Log文件,目前使用下来感觉还不错,搜索功能同样强大。

当然现在VIM还基本属于初步上手阶段,主要是VIM需要记忆的命令太多,而自己在Windows上使用VIM的频率也不怎么高。

使用MFC Custom Control实现界面的自绘

| Comments

最近在做一个视频编辑的项目,其中界面部分有点复杂,负责这部分的同事使用了MFC的Custom Control来实现界面的自绘效果,目前DemoAP的初步效果已经出来,感觉还不错。

因为工作以来基本没有接触过UI方面的编程,加之以前也没有使用过Custom Control,这次做一个简单学习和总结,以便后用。

软件设计的几点思考和总结

| Comments

软件设计是不易的,尤其要设计出结构良好、可靠性高、又不失可扩展性和可维护性的软件更是困难的事。

随着项目的积累、经验的丰富,不同阶段,自己对设计的理解也是不一样的,就像看一本好书,每读一遍,对其中内容的理解往往也会不同一样。

下面是自己对如何设计良好软件的一点理解:

个人技术提升Roadmap

| Comments

长假之后果然不在状态,今天抽空给自己未来的学习做了一个简单的规划,也算一个简单的总结和回顾。

为了便于查看,特在MindPin上绘制了一张个人技术规划的思维导图。

技术Roadmap

如果图片不清晰的话,请移步这里直接查看原始文件。

在Ubuntu中下载编译ffmpeg的过程

| Comments

登陆ffmpeg官网的下载页面可以得到使用git克隆ffmpeg源代码的地址:

1
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

在ubuntu的shell下,使用上述git命令来下载ffmpeg,下载所需的时间会有点长。

等ffmpeg下载完成,ubuntu上就已经存在了一份完整的ffmpeg源代码了。

下面就可以进行编译ffmpeg了。

在VirtualBox上小玩Ubuntu

| Comments

第一次接触Linux应该是读研时,当时自己在实验室里捣鼓着嵌入式开发,慢慢也就了解了一些Linux的东西,不过当时完全很业余,很多东西都不太懂。

后来,跟其他实验室的同学借了Linux的安装光盘,在自己的机器上第一次装上Linux,不过后来好像也没什么深入的使用。

工作以后,一直是在Windows上做开发,基本不涉及Linux,不过自己对Linux还是蛮感兴趣的,在家里的电脑上也一直安装着Ubuntu,偶尔也会上去玩一玩。

随着和开源软件的接触,发现很多的开源Code都是来自于Linux,自己也一直想学习一下Linux中C/C++开发的方法。

由于自己大部分的工作和家人对电脑的使用都是集中在Windows上,不希望来回切换系统,故多数是在Windows上使用VirtualBox虚拟机安装Ubuntu来使用。

虚拟机上的Ubuntu,我只会安装Linux C/C++开发所必要的一些软件,如代码编辑器Vim, C/C++编译调试工具,代码版本控制工具Git等。

使用Python图形化分析大Log文件

| Comments

最近因为项目需要经常分析数据量很大的Log文件,以往靠手工目测的分析方法已不太可能快速分析和定位问题。

由于和我一起做这个项目的同事,会使用Python,编写的Python脚本能够将Log中的相关数据以图形的方式显示出来,这样就便于我们快速检测出是否输入、输出有异常情况发生。 这样,也就加快了解决问题的效率。

为此,在这里简要记录一下具体的方法,以便以后在需要的时候能够做参考。

正则表达式初学笔记

| Comments

最近一直在做MPEG2 TS-Mux,在开发调试的过程中有大量的log数据需要分析,特别是长时间测试,log文件往往会达到几百兆。

这时遇到问题,要自己逐行去分析log定位问题往往是不太现实的事情。

为了提高log文件分析的效率,我们利用Python编写分析log的脚本,每个脚本分析log文件中一类信息,如从前端Encoder中接受到的PTS,分析PTS是否有错误或跳变等情况。

为了从原始的log文件中提取出我们关心的log部分,使用了一个命令行工具Sed

Sed(streams editor)的具体使用方法可参考这篇文章sed命令+正则表达式

在一个数据量很大的文本中要查找出所有符合特定规则的文本,使用文本编辑器中简单查找功能往往很难达到要求。

不过现在的文本编辑器也越来越强大,我熟悉的如VIM、Notepad++、UltraEdit等都是支持使用正则表达式来完成复杂的、自定义规则的文本查找功能。 上述的Sed也是使用正则表达式来实现强大的文本查找功能。

下面将会简单介绍一些关于正则表达式的知识,以后有时间会写一篇关于如何使用Python和matplotlib库来分析log数据并图形化显示分析结果的文章。