音频处理,用Qt自己的类QAudioOutput,QIODevice。在项目中需要添加Qt多媒体模块:
音频的处理和视频基本相同,例如下面是读帧后,在线程函数run()中做解码:
if (pkt.stream_index == FFmpegUtils::GetInstance()->m_audioStream)
{
g_apts = FFmpegUtils::GetInstance()->Decode(&pkt);
av_packet_unref(&pkt);
int len = FFmpegUtils::GetInstance()->ToPCM(out);
AudioUtils::GetInstance()->Write(out, len);
continue;
}
解码后转换成pcm,在通过AudioUtils::GetInstance()->Write(out, len);写入系统设备,进行播放。具体的音频解码转换代码如下:
int FFmpegUtils::ToPCM(char *out)
{
QMutexLocker locker(&mutex);
if (