使用MP4V2开源库将AAC打包到MP4文件中
来源:互联网 发布:小猫软件scratch下载 编辑:程序博客网 时间:2024/05/29 18:20
这几天一直在搞Darwin Streaming Server的点播功能,对MP4文件的点播是没有问题的,但是对音频(比如aac音频文件)该如何点播呢?
想到了一种转发思路:就是将aac文件打包到MP4文件中,然后在进行MP4文件的点播;
直接上代码:
int main(int argc, char *argv[])
{
FILE *fpAudio = NULL;
int len;
MP4TrackId audio = MP4_INVALID_TRACK_ID;
uint8_t buf[2] = {0x15, 0x88};
//创建 mp4 文件
file = MP4Create("test.mp4", 0);
if (file == MP4_INVALID_FILE_HANDLE)
{
printf("Open file failed!\n");
return 1;
}
// 设置时间片
MP4SetTimeScale(file, AUDIO_TIME_SCALE);
// 添加 AAC track
audio = MP4AddAudioTrack(file,8000, 1930, MP4_MPEG4_AUDIO_TYPE);
if (audio == MP4_INVALID_TRACK_ID)
{
printf("Add audio track failed!\n");
return 1;
}
// 设置音频属性
MP4SetAudioProfileLevel(file, 0x02);
MP4SetTrackESConfiguration(file, audio, buf, 2);
fpAudio = fopen("input.aac", "rb");
if (fpAudio == NULL)
{
printf("File could not open!\n");
return 1;
}
buffer = (unsigned char *)malloc(4097);
memset(buffer,0,4097);
while((len = fread(buffer,1,4096,fpAudio)) > 0)
{
MP4WriteSample(file,audio,buffer,len,MP4_INVALID_DURATION,0,0,1);
}
fclose(fpAudio);
free(buffer);
MP4Close(file, 0);
}
这样就可以将aac文件打包到MP4文件中;
- 使用MP4V2开源库将AAC打包到MP4文件中
- Faac 编码实时pcm流到aac流 并用mp4v2打包成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 嵌入式 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 使用mp4v2将H264+AAC合成mp4文件
- 黑马程序员--自学笔记--集合(其一)
- nyoj 摆方格 1087 (数学规律)
- 后厨-物流
- 农夫过河问题(图的邻接矩阵)
- hdu 3951(博弈,成环)
- 使用MP4V2开源库将AAC打包到MP4文件中
- Android 网络编程
- 多段图问题(图的邻接表)
- hdu1059 Dividing (多重背包)
- iOS中设置scrollView的偏移量(开始的位置)
- 单源最短路径(图的邻接矩阵)
- REST接口
- RecycleView + SwipeRefreshLayout 实现下拉刷新
- 《leetCode》:Rotate List