我想从 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 个 channel 获得足够清晰的播放。
现在我正在尝试解决其他问题,而不是尝试提高音频质量,例如使用 Phonon。
最佳答案
我认为您的问题与您的采样率有关 - 22KHz 似乎非常低。将其提高到 44.1K 会有多大的不同? (我认为您还需要检查 QAudioDeviceInfo::supportedSampleRates().contains((int)SampleRate)
是否为您选择的任何 SampleRate
)。
关于从 Axis 相机播放 Qt 音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8135261/