前一段时间接到一个任务,需要采集到声卡的输出信号,以便与麦克风的输入信号进行混音。
之前一直没有研究过音频的相关技术,这次就顺便抽出一点时间去了解了一下Windows上采集音频的相关技术。
对于音频处理的技术,主要有如下几种:
- 采集麦克风输入
- 采集声卡输出
- 将音频数据送入声卡进行播放
- 对多路音频输入进行混音处理
前一段时间接到一个任务,需要采集到声卡的输出信号,以便与麦克风的输入信号进行混音。
之前一直没有研究过音频的相关技术,这次就顺便抽出一点时间去了解了一下Windows上采集音频的相关技术。
对于音频处理的技术,主要有如下几种:
元旦小长假前几天偶然中接触到Sublime Text 2, 初步使用下来感觉很不错,是又一款比较适合程序员使用的文本编辑器。
在Sublime Text 2之前,一直比较喜欢使用VIM和Notepad++,其中VIM主要用来查看一些源代码文件或编辑一些文本,
而Notepad++更多是用来替代UltraEdit查看Log文件,目前使用下来感觉还不错,搜索功能同样强大。
当然现在VIM还基本属于初步上手阶段,主要是VIM需要记忆的命令太多,而自己在Windows上使用VIM的频率也不怎么高。
最近在做一个视频编辑的项目,其中界面部分有点复杂,负责这部分的同事使用了MFC的Custom Control来实现界面的自绘效果,目前DemoAP的初步效果已经出来,感觉还不错。
因为工作以来基本没有接触过UI方面的编程,加之以前也没有使用过Custom Control,这次做一个简单学习和总结,以便后用。
软件设计是不易的,尤其要设计出结构良好、可靠性高、又不失可扩展性和可维护性的软件更是困难的事。
随着项目的积累、经验的丰富,不同阶段,自己对设计的理解也是不一样的,就像看一本好书,每读一遍,对其中内容的理解往往也会不同一样。
下面是自己对如何设计良好软件的一点理解:
登陆ffmpeg官网的下载页面可以得到使用git克隆ffmpeg源代码的地址:
1
|
|
在ubuntu的shell下,使用上述git命令来下载ffmpeg,下载所需的时间会有点长。
等ffmpeg下载完成,ubuntu上就已经存在了一份完整的ffmpeg源代码了。
下面就可以进行编译ffmpeg了。
第一次接触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等。
最近因为项目需要经常分析数据量很大的Log文件,以往靠手工目测的分析方法已不太可能快速分析和定位问题。
由于和我一起做这个项目的同事,会使用Python,编写的Python脚本能够将Log中的相关数据以图形的方式显示出来,这样就便于我们快速检测出是否输入、输出有异常情况发生。 这样,也就加快了解决问题的效率。
为此,在这里简要记录一下具体的方法,以便以后在需要的时候能够做参考。
最近一直在做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数据并图形化显示分析结果的文章。