资源简介
gpac库把H265与AAC封装成MP4的接口(新),https://blog.csdn.net/LLL347/article/details/85886975
代码片段和文件信息
#include “MP4Writer.h“
#include
#include “gpac/isomedia.h“
#include “gpac/constants.h“
extern “C“ {
#include “gpac/internal/media_dev.h“
}
#define INIT_STATUS 0
#define CONFIG_STATUS 1
#define CONFIG_FINISH 2
static s8 GetSampleRateID(u32 SamplRate)
{
switch (SamplRate)
{
case 96000: return 0;
case 88200: return 1;
case 64000: return 2;
case 48000: return 3;
case 44100: return 4;
case 32000: return 5;
case 24000: return 6;
case 22050: return 7;
case 16000: return 8;
case 12000: return 9;
case 11025: return 10;
case 8000 : return 11;
case 7350 : return 12;
default: return -1;
}
}
//gf_m4a_get_profile
static u8 GetAACProfile(u8 AudioType u32 SampleRate u8 Channel)
{
switch (AudioType)
{
case 2: /* AAC LC */
{
if (Channel <= 2) return (SampleRate <= 24000) ? 0x28 : 0x29; /* LC@L1 or LC@L2 */
if (Channel <= 5) return (SampleRate <= 48000) ? 0x2A : 0x2B; /* LC@L4 or LC@L5 */
return (SampleRate <= 48000) ? 0x50 : 0x51; /* LC@L4 or LC@L5 */
}
case 5: /* HE-AAC - SBR */
{
if (Channel <= 2) return (SampleRate <= 24000) ? 0x2C : 0x2D; /* HE@L2 or HE@L3 */
if (Channel <= 5) return (SampleRate <= 48000) ? 0x2E : 0x2F; /* HE@L4 or HE@L5 */
return (SampleRate <= 48000) ? 0x52 : 0x53; /* HE@L6 or HE@L7 */
}
case 29: /*HE-AACv2 - SBR+PS*/
{
if (Channel <= 2) return (SampleRate <= 24000) ? 0x30 : 0x31; /* HE-AACv2@L2 or HE-AACv2@L3 */
if (Channel <= 5) return (SampleRate <= 48000) ? 0x32 : 0x33; /* HE-AACv2@L4 or HE-AACv2@L5 */
return (SampleRate <= 48000) ? 0x54 : 0x55; /* HE-AACv2@L6 or HE-AACv2@L7 */
}
default: /* default to HQ */
{
if (Channel <= 2) return (SampleRate < 24000) ? 0x0E : 0x0F; /* HQ@L1 or HQ@L2 */
return 0x10; /* HQ@L3 */
}
}
}
static void GetAudioSpecificConfig(u8 AudioType u8 SampleRateID u8 Channel u8 *pHigh u8 *pLow)
{
u16 Config;
Config = (AudioType & 0x1f);
Config <<= 4;
Config |= SampleRateID & 0x0f;
Config <<= 4;
Config |= Channel & 0x0f;
Config <<= 3;
*pLow = Config & 0xff;
Config >>= 8;
*pHigh = Config & 0xff;
}
/* 返回的数据包括起始的4个字节0x00000001 */
static u8* FindNalu(u8 *pStart u32 Size u8 *pNaluType u32 *pNaluSize)
{
u8 *pEnd;
u8 *pCur;
u8 *pOut;
u8 NaluType;
if (4 >= Size)
return NULL;
/* 找第一个0x00000001 */
pCur = pStart;
pEnd = pStart + Size - 4;
while (pCur < pEnd)
{
if ( (0 == pCur[0]) && (0 == pCur[1]) && (0 == pCur[2]) && (1 == pCur[3]) )
break;
pCur++;
}
if (pCur >= pEnd)
return NULL;
Nalu
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 16959 2019-01-11 15:46 MP4Writer.cpp
文件 810 2019-01-05 23:19 MP4Writer.h
相关资源
- 价值4k的.NET全栈开发[MP4]](158G).zi
- 基于STM32的MP4播放器带gps定位,界面显
- 使用flash播放mp4视频
- CEF3 chromium 2623 /mp3/mp4 稳定、终结版
- 腾讯视频QLV格式直转MP4工具.rar
- 海康录下的MP4文件播放的,DELPHI编写
- CS版.mp4手机视频转换工具
- 给Mp4视频增加关键帧工具
- RTSPVGA录制,以及推流小工具
- 使用directshow采集视音频并进行H264和
- 使用gpac封装MP4源码
- MP3、MP4充电器电路原理图_带光耦
- 免费的flash转成mp4格式工具
- snmp4j中文版阅读文档
- 用snmp4j获取本地所有oid
- m3u8工具,后可自
- testRTSPClient+mp4v2录制mp4
- mp4v2在windows平台缺失文件
- MP4 FastStart(MP4)
- mp4格式分析工具集合包
- 海思方案通用刷机工具IDT 版本号V1.
- ffmpeg用h264跟aac合成mp4
- 腾讯视频QLV格式直转MP4工具.zip
- Golang老男孩Go语言第一期视频教程 [
- MP4v2封装MP4
- rtp to mp4 存储
- gethashes,抓取HASH
- 使用ffmpeg封装h264裸流为MP4文件
- ffmpeg H264 转为MP4
评论
共有 条评论