Linux系统 QT+Faac实时音频采集编码(FAAC实时编码篇)

本文介绍在Linux系统中使用QT结合FAAC进行实时音频采集和编码的过程。内容包括FAAC的使用流程、项目代码实现、注意事项及运行结果。重点讲解了FAAC编码器的工作原理和参数配置,以及如何处理编码过程中的缓存和数据完整性问题。
摘要由CSDN通过智能技术生成

上一次发了QT音频采集篇,本次是它的后续内容。

未读过前篇的可以到此链接:Linux系统 QT+Faac实时音频采集编码(QT音频采集篇)

Linux下编译FAAC库:linux下编译faac库


一:FAAC使用流程图:



二:项目代码

本次项目基于上次的QT音频采集,把采集到的PCM数据存到本地文件,同时进行实时编码,再保存一个编码后的AAC文件,把两者进行对比,可以看到编码的效果。


.pro 文件

包含libfaac库文件位置,看安装在哪

LIB+= /usr/local/lib/libfaac.so\


.h 头文件

/*本程序实现简单的QT音频录音并实时写入PCM文件*/
/*同时初始化FAAC将原始音频编码实时写入AAC文件*/
/*  Jingenfan@126.com        姓值钱的金三岁*/

#ifndef MYRECORD_H
#define MYRECORD_H


#include "myserver.h"
#include <QMainWindow>
#include <QWidget>
#include <QAudioRecorder>
#include <QAudioEncoderSettings>
#include <QtMultimedia/QAudioInput>
#include <QFile>
#include <QTimer>
#include <QIODevice>
#include <QBuffer>
#include <faac.h>
#include <iostream>

typedef unsigned long  ULONG;
typedef unsigned int   UINT;
typedef unsigned char  BYTE;
typedef char           _TCHAR;

class myRecord : public QMainWindow
{
    Q_OBJECT
public:
    explicit myRecord(QWidget *parent = 0);
    void FAAC();                              //FAAC初始化封装函数
    void StartRecord();                       //开始录音
    void StopRecord();                        //结束录音
    void FaacEncode();                        //编码
    FILE* fout = NULL;                        //输出PCM文件
    FILE* AACFILE = NULL;                     //输出AAC文件

    MyServer*  myserver;

    int temp;
    int end;                                   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值