-
大小: 3.32MB文件类型: .zip金币: 2下载: 0 次发布日期: 2024-01-31
- 语言: 其他
- 标签: ffmpeg4.0.2 aac Qt5.8.0
资源简介
win10 x64bit环境做的一个调用新版ffmpeg4.0.2版本的pcm转aac编码器,解决新版ffmpeg不能直接编码成aac问题。
代码片段和文件信息
#include “codec.h“
#include “ui_codec.h“
codec::codec(QWidget *parent) :
QMainWindow(parent)
ui(new Ui::codec)
{
ui->setupUi(this);
openAACFile();
}
codec::~codec()
{
delete ui;
}
int codec::flush_encoder(AVFormatContext *fctxunsigned int astindex){
int ret;
int got_afr;
AVPacket ec_apkt;
if (!(fctx->streams[astindex]->codec->codec->capabilities & AV_CODEC_CAP_DELAY))
return 0;
while (1) {
ec_apkt.data = nullptr;
ec_apkt.size = 0;
av_init_packet(&ec_apkt);
ret = avcodec_encode_audio2 (fctx->streams[astindex]->codec &ec_apkt
nullptr &got_afr);
av_frame_free(nullptr);
if (ret < 0)
break;
if (!got_afr){
ret = 0;
break;
}
printf(“Flush Encoder: Succeed to encode 1 aac frame!\taSize:%5d\n“ec_apkt.size);
// Mux encoded aac frame
ret = av_write_frame(fctx &ec_apkt);
if (ret < 0)
cout << “Write 1 aac frame!“ << endl;
break;
}
return ret;
}
void codec::AddADTS(int pktLen)
{
//int m_PcmSampleRatem_PcmChannel;
AVCodecContext *aacctx;
char m_pOutData[1024 * 10];
int profile = 1; // AAC LC
int freqIdx = 0xb; // 44.1KHz
int chanCfg = aacctx->channels; //m_PcmChannel; // CPE
if (aacctx->bit_rate == 96000)
{
freqIdx = 0x00;
}
else if(aacctx->bit_rate == 88200)
{
freqIdx = 0x01;
}
else if (aacctx->bit_rate == 64000)
{
freqIdx = 0x02;
}
else if (aacctx->bit_rate == 48000)
{
freqIdx = 0x03;
}
else if (aacctx->bit_rate == 44100)
{
freqIdx = 0x04;
}
else if (aacctx->bit_rate == 32000)
{
freqIdx = 0x05;
}
else if (aacctx->bit_rate == 24000)
{
freqIdx = 0x06;
}
else if (aacctx->bit_rate == 22050)
{
freqIdx = 0x07;
}
else if (aacctx->bit_rate == 16000)
{
freqIdx = 0x08;
}
else if (aacctx->bit_rate == 12000)
{
freqIdx = 0x09;
}
else if (aacctx->bit_rate == 11025)
{
freqIdx = 0x0a;
}
else if (aacctx->bit_rate == 8000)
{
freqIdx = 0x0b;
}
else if (aacctx->bit_rate == 7350)
{
freqIdx = 0xc;
}
// fill in ADTS data
m_pOutData[0] = 0xFF;
m_pOutData[1] = 0xF1;
m_pOutData[2] = ((profile) << 6) + (freqIdx << 2) + (chanCfg >> 2);
m_pOutData[3] = (((chanCfg & 3) << 6) + (pktLen >> 11));
m_pOutData[4] = ((pktLen & 0x7FF) >> 3);
m_pOutData[5] = (((pktLen & 7) << 5) + 0x1F);
m_pOutData[6] = 0xFC;
}
int codec::openAACFile()
{
AVFormatContext* aacfctx = nullptr;
AVOutputFormat* fmt = nullptr;
AVStream* aacSt = nullptr;
AVCodecContext* aacctx = nullptr;
AVCodec* aacc;
AVframe* aacfr = nullptr;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-29 09:21 aac\
文件 1621 2018-11-29 09:18 aac\aac.pro
文件 23472 2018-11-29 09:14 aac\aac.pro.user
文件 7549 2018-11-29 09:20 aac\codec.cpp
文件 1393 2018-11-29 09:21 aac\codec.h
文件 639 2018-11-29 09:14 aac\codec.ui
目录 0 2018-11-29 08:20 aac\ff4.0.2x32\
文件 35823 2018-07-25 16:07 aac\ff4.0.2x32\LICENSE.txt
文件 4480 2018-07-25 16:07 aac\ff4.0.2x32\README.txt
目录 0 2018-11-29 08:20 aac\ff4.0.2x32\examples\
文件 1970 2018-07-25 16:07 aac\ff4.0.2x32\examples\Makefile
文件 888 2018-07-25 16:07 aac\ff4.0.2x32\examples\README
文件 5551 2018-07-25 16:07 aac\ff4.0.2x32\examples\avio_dir_cmd.c
文件 4015 2018-07-25 16:07 aac\ff4.0.2x32\examples\avio_reading.c
文件 5349 2018-07-25 16:07 aac\ff4.0.2x32\examples\decode_audio.c
文件 5290 2018-07-25 16:07 aac\ff4.0.2x32\examples\decode_video.c
文件 14568 2018-07-25 16:07 aac\ff4.0.2x32\examples\demuxing_decoding.c
文件 6579 2018-07-25 16:07 aac\ff4.0.2x32\examples\encode_audio.c
文件 5544 2018-07-25 16:07 aac\ff4.0.2x32\examples\encode_video.c
文件 5641 2018-07-25 16:07 aac\ff4.0.2x32\examples\extract_mvs.c
文件 11824 2018-07-25 16:07 aac\ff4.0.2x32\examples\filter_audio.c
文件 10266 2018-07-25 16:07 aac\ff4.0.2x32\examples\filtering_audio.c
文件 9675 2018-07-25 16:07 aac\ff4.0.2x32\examples\filtering_video.c
文件 5254 2018-07-25 16:07 aac\ff4.0.2x32\examples\http_multiclient.c
文件 7715 2018-07-25 16:07 aac\ff4.0.2x32\examples\hw_decode.c
文件 1918 2018-07-25 16:07 aac\ff4.0.2x32\examples\me
文件 21513 2018-07-25 16:07 aac\ff4.0.2x32\examples\muxing.c
文件 8239 2018-07-25 16:07 aac\ff4.0.2x32\examples\qsvdec.c
文件 6388 2018-07-25 16:07 aac\ff4.0.2x32\examples\remuxing.c
文件 8005 2018-07-25 16:07 aac\ff4.0.2x32\examples\resampling_audio.c
文件 5028 2018-07-25 16:07 aac\ff4.0.2x32\examples\scaling_video.c
............此处省略241个文件信息
相关资源
- Windows下使用FFMPEG解码AAC文件并使用
- 最简单的基于FFMPEG的音频编码器 1.1
- 嵌入式音频视频混合为mp4(mp4v2+faac
- .aac音频文件
- 使用gpac封装MP4源码(新)
- aac格式音频
- hi3516a音频解码音频编解码库
- 如何使用mp4v2将H264+AAC裸流录制成mp4文
- 音频采集编码pcm到aac
- ICAO ANEX15 icao 附件15
- H264_AAC_TS_MUX_本地文件_1
- H264_AAC_FLV_MUX_本地文件_1
- 海思3516CV300平台音频编解码库
- CAACATIA二次开发入门宝典
- aac+h264封装MP4
- faac windows
- vs2015+qt5.8.0 NTP协议的实现源码
- 国际民用航空公约附件十中文官方翻
- Handbook of Medical Imaging Processing and Ana
- FlashMediaLiveEncoder3.2_with_AAC(key)
- Quantum Computation and Quantum - MICHAEL NIEL
- 使用DirectShow采集桌面、语音并实时进
- ICAO ANEX10 icao 附件10
- CEF 3.3497.1817 x86带ffmpeg支持H.264/MP3/AA
- flv解析h264
- 使用DirectShow采集摄像头并对视音频进
- speex音频转pcm和aac
- 使用mp4v2将H264+AAC合成mp4
- 2e3460f894390064a17aedaac2d31b16.txt
- ICAO ANEX11 icao 附件11
评论
共有 条评论