我希望从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。
答案 0 :(得分:0)
我认为你的问题与你的采样率有关 - 22KHz似乎很低。将它增加到44.1K有多大差异? (我认为您还需要检查QAudioDeviceInfo::supportedSampleRates().contains((int)SampleRate)
是否选择SampleRate
。