1

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

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

4

2 回答 2

1

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

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

[更新] 在 CodeProject 上有一个关于如何读取和写入 AVI 文件的不错的演练:隐写术 IV - 读取和写入 AVI 文件

于 2013-04-30T23:43:14.353 回答
0

这是解决方案的更新:

基本上,我做的是正确的事情,并按照 Richard 的建议传递了正确的编解码器代码 (WAVE_FORMAT_MULAW)。

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

例如:

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

...

谢谢!

于 2013-05-02T14:52:47.500 回答