将G.711流写入AVI文件

时间:2013-04-30 23:19:20

标签: audio-streaming pcm avi

我继承了一个打开专有文件的应用程序,该文件包含视频流和音频流(G.711 ULAW格式)。应用程序已将视频写入AVI但没有音频。 我想添加以相同格式将音频流插入AVI文件的代码。

是否有任何代码示例/文档显示如何将G.711流写入AVI?

2 个答案:

答案 0 :(得分:1)

AVIFile服务可用于将流写入AVI格式。

G.711 u-law是Windows中的标准“wave”音频格式。使用AVIStreamSetFormat设置音频流的格式时,请使用WAVEFORMATEX结构,wFormatTag设置为WAVE_FORMAT_MULAW(0x0007)。

[更新]关于如何在CodeProject上读取和写入AVI文件有一个很好看的演练:Steganography IV - Reading and Writing AVI files

答案 1 :(得分:0)

这是解决方案的更新:

基本上我正在做正确的事情并传递正确的编解码器代码(WAVE_FORMAT_MULAW),正如理查德建议的那样。

但是,每个API调用:AVIFileCreateStream和AVIStreamSetFormat接受不同的结构。但并非所有字段都与调用相关,因此在设置每个字段之前,结构的其余部分必须用零填充。

例如:

AVISTREAMINFO aviHeader;
ZeroMemory(&aviHeader, sizeof(aviHeader));
aviHeader.fccType = streamtypeAUDIO;

...

谢谢!