从 Axis 相机播放 Qt 音频

标签 qt ffmpeg live555

我想从 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/

相关文章:

windows - FFmpeg 进度跟踪 Visual C++

ffmpeg - 我想将相机视频流上传到 Amazon S3 并将其下载到 Android 手机。我对此完全陌生。我怎样才能做到这一点?

c++ - 'network-caching'选项在vlc中使用了Live555的哪些函数

c++ - 使用 render 方法打印 QTableView

C++/Qt - QGraphicsItem 的多重继承没有按预期工作

Windows 上的 QTCreator : how to set temp and destination folders?

c++ - 如何获取 insertRows 源?

c++ - MP4 碎片 - 在浏览器中播放时出现问题

ffmpeg 复杂过滤器 - 黑色背景上的多个裁剪

video-streaming - 媒体基金会 : SPS/PPS problem with Intel hardware MFT