1

我想从 Axis Camera 获取 RTP 音频流,然后在我的 Qt 项目中实时播放。

我正在使用 Live555 来管理音频流并使用 FFMPEG 对其进行解码。当我解码一个数据包时,我会发出一个信号,该信号在我的小部件的插槽内进行管理:

ap.ioDevice->write((const char*)ptrArr, frameSize);

问题是当我听的时候,我的声音有点金属味!我为以下参数设置了这些参数QAudioOutput

format.setFrequency(22050);
format.setChannels(1);
format.setSampleSize(16);
format.setCodec("audio/pcm");
format.setByteOrder(QAudioFormat::LittleEndian);
format.setSampleType(QAudioFormat::UnSignedInt);

怎么了?


谢谢你们。

正如我在评论中所说,我能够以 8000Hz 和 2 个通道获得足够清晰的播放。

现在我正在尝试解决其他问题,而不是尝试提高音频质量,例如使用 Phonon。

4

1 回答 1

0

我认为您的问题与您的采样率有关 - 22KHz 似乎非常低。将其提高到 44.1K 会有多大的不同?(我认为您还需要检查QAudioDeviceInfo::supportedSampleRates().contains((int)SampleRate)您选择的任何内容SampleRate)。

于 2011-11-15T11:24:31.787 回答