- 博客(17)
- 资源 (3)
- 收藏
- 关注
原创 Windows多媒体开发框架介绍
Windows 多媒体开发框架介绍欢迎来到 Windows 的多媒体开发世界2D 图形 API1. [GDI](https://docs.microsoft.com/en-us/windows/desktop/gdi/windows-gdi)2. [GDI+](https://docs.microsoft.com/en-us/windows/desktop/gdiplus/-gdiplus-gdi...
2019-01-27 15:55:21 4975 7
原创 音频转码 via FFmpeg
音频转码 via FFmpegFFmpeg 简介FFmpeg 命令行转码FFmpeg API 转码Transcoding 流程图Transcoding 代码open_input_file 函数open_output_audio_file 函数open_output_file 函数init_audio_encoder 函数audio_transcode 函数decode_a_frame 函数read...
2019-01-31 19:26:00 1244
原创 音视频播放 via Media Foundation I
音频播放 via Media Foundation IMedia Foundation 简介Media Foundation 播放音频播放流程图播放代码CPlayer::OpenURL 函数CPlayer::CreateSession 函数CTopoBuilder::CreateMediaSource 函数CTopoBuilder::CreateTopology 函数CTopoBuilder::A...
2019-01-31 17:54:21 1031
原创 音视频播放 via Media Foundation II
音频播放 via Media Foundation IMedia Foundation 简介Media Foundation 播放音频播放流程图播放代码MFPlayer 类MFPlayer::CreateInstance 静态函数MFPlayer::Initialize 函数CAudioSessionVolume 类CAudioSessionVolume::Initialize 函数MFPlaye...
2019-01-30 19:30:23 897
原创 音频播放 via DirectShow
音频播放 via DirectShowDirectShow 简介DirectShow 播放音频播放流程播放代码DSAudioPlayer::openFile 函数DSAudioPlayer::_initGraph 函数DSAudioPlayer::_renderStreams 函数DSAudioPlayer::_updateVolume 函数DSAudioPlayer::play 函数handl...
2019-01-30 15:55:57 495
原创 音频播放 via FFmpeg
音频播放 via FFmpegFFmpeg 简介FFmpeg 命令行播放音频FFmpeg + SDL 播放音频播放流程播放代码这里所说的播放是指通过读取声音文件数据然后经过解码输出到扬声器进行播放的过程。Windows 上有如下几种常见的实现方式:Waveform APIFFmpegDirectShowMedia FoundationFFmpeg 简介FFmpeg 是一套可以用...
2019-01-30 12:53:20 839
原创 音频播放 via Waveform API
音频播放 via Waveform APIWaveform API 播放音频播放流程图播放代码CWavOutHelper::_openWavFile 函数CWaveFileHelper::open 函数CWaveFileHelper::getAudioData 函数CWavOutHelper::_prepareHeaderAndPlay 函数CWavOutHelper::_fillAudioBuf...
2019-01-29 17:52:46 429
原创 音频采集 via Media Foundation
音频采集 via Media FoundationMedia Foundation 简介Media Foundation 采集音频采集流程图采集代码概览MMDeviceHelper::enumAudCapDevices 函数CMFCapture::startCapture 函数CMFCapture::_configAudioCapture 函数createSrcReader 函数configSrc...
2019-01-29 15:18:04 828
原创 音频采集 via DirectShow
音频采集 via DirectShowDirectShow 简介DirectShow 采集音频采集流程图采集代码概览enumAudioInputFilters 函数addFilterByCLSID 函数connectFilters 函数getUnconnectedPin 函数GraphEdit这里所说的音频采集是指通过麦克风采集声音数据然后经过编码保存为磁盘上的一个文件。Windows 上有如...
2019-01-29 14:35:32 436
原创 音频采集 via FFmpeg
音频采集 via FFmpegFFmpeg 命令行采集音频FFmpeg API 采集音频音频重采样FFmpeg 采集音频代码概览open_cap_device 函数enum_dshow_acap_devices 函数open_output_audio_file 函数open_output_file 函数init_audio_encoder 函数audio_transcode 函数decode_a_...
2019-01-29 13:56:11 1346
原创 音频采集 via Waveform API
音频采集 via Waveform APIWaveform API 采集音频采集音频的流程代码调用概览CWaveInHelper::enumDevices 函数CWaveInHelper::openDevice 函数CWaveInHelper::startRecording 函数CWaveInHelper::_waveInProc 回调函数CWaveInHelper::stopRecording ...
2019-01-29 11:54:26 610 3
原创 PCM和WAV数据结构
PCM 和 WAV 数据结构采样率数字音频常用的采样率位深度PCM 音频数据PCM 音频数据的存储PCM 音频数据的参数PCM 音频数据的处理降低某个声道的音量[^1]PCM → WAVWAV 格式定义WAV 文件头解析PCM → WAV 代码[^1]采样率在我的另一篇博文 音频编码 中已经介绍了采样和量化的概念,这里介绍一下采样率。采样率表示音频信号每秒的数字快照数。该速率决定了音频文件的...
2019-01-29 10:40:51 3700
原创 音频编码
音频编码音频编码基本原理[^1]音频信号的冗余信息静音阈值曲线频谱掩蔽效应时域掩蔽效应压缩编码方法音频采样音频量化语音 / 音频编码算法常见音频压缩格式对比音频编码基本原理1音频信号的冗余信息数字音频信号如果不加压缩地直接进行传送,将会占用极大的带宽。例如,一套双声道数字音频若取样频率为 44.1KHz,每样值按 16bit 量化,则其码率为: 2 x 44.1 kHz x 16 bi...
2019-01-28 19:19:40 1815 4
原创 COM对象
COM 对象QueryInterface 实现关于 COM 接口的介绍请参考我的另一篇博文 COM 接口。本文主要关注 COM 的实现。QueryInterface 实现QueryInterface 接口查询函数一般实现如下:HRESULT CCalculator::QueryInterface(const IID& iid, void **ppv){ if ( iid...
2019-01-28 18:38:43 6488
原创 COM接口
COM 接口什么是 COM?接口的结构与描述使用 C++/C/Delphi 描述接口IDL接口的标识COM 数据类型MIDL 编译器IUnknown 接口接口继承接口查询规则什么是 COM?COM 全称为 Component Object Model,是微软为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在 COM 构架下,人们可以开发出各种各样的功能专一的组件,然后...
2019-01-27 17:57:59 9877 4
原创 Story in PeopleWare: 24
会议一开始是几分钟的善意玩笑,老板安布罗斯对每一个与会者开轻松的玩笑。每一位听者都上当了而且同样给予轻松的反击,大家都很愉快。在安布罗斯主持会议之后大家都心境迅速改变了。问题被简洁而有效地摆到桌面上来讨论。每一个问题只和与会者中的一个讨论。安布罗斯与那个谈话人进行简短的对话,传递有关公司情况信息,以便安布罗斯能够确切地了解那个星期所取得的进展。在会议期间,时间是平均分配给每位与会者的,每位...
2019-01-27 16:17:34 271
原创 Story in PeopleWare: 25
一个富有进取心的经理进入了公司,这个催化剂般的天才说服力公司在公司附近建立一所自己的学校。这所学校有一个日托和学前中心,还有为上幼儿园的孩子至五年级的学生准备的班级。这所学校是为雇员的小孩设立的。每天下午在老师领着全体学生穿过整个公司的时候,他们大肆宣扬地向每一个人问好,组成了一支喧闹、有趣、耀武扬威的傻乎乎的游行队伍。一英里远你就能听见他们来了。所有的工作都因为这个游行而暂停了。有许多人...
2019-01-27 16:17:20 1644
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人