MP4文件写入音频和视频(使用mpeg4ip)
来源:互联网 发布:图像融合算法代码 编辑:程序博客网 时间:2024/06/13 18:20
使用MPEG4IP库接口实现音视频存储
MP4WriteSample 写音视频帧(需要精确控制时间戳,时间戳可以使用相对值,即当前帧时间戳减去上一帧的时间戳)
MP4AddH264VideoTrack 添加H264 track(timescale时间因子参数很重要,根据视频帧的时间戳类型定义,90000(视频标准采样时间戳)或1000(ms时间戳))
MP4AddAudioTrack 添加音频AAC track (timesacle时间因子参数设置为1000(ms时间戳))
音频AAC
采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。
。正常人听觉的频率范围大约在20Hz~20kHz之间,根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,如果采用更高的采样频率,还可以达到DVD的音质
对采样率为44.1kHz的AAC音频进行解码时,一帧的解码时间须控制在23.22毫秒内。
背景知识:
(一个AAC原始帧包含一段时间内1024个采样及相关数据)
分析:
1 AAC
音频帧的播放时间=一个AAC帧对应的采样样本的个数/采样频率(单位为s)
一帧 1024个 sample。采样率 Samplerate 44100KHz,每秒44100个sample, 所以 根据公式
当前AAC一帧的播放时间是= 1024*1000000/44100= 22.32ms(单位为ms)
2 MP3
mp3 每帧均为1152个字节, 则:
frame_duration = 1152 * 1000000 / sample_rate
例如:sample_rate = 44100HZ时, 计算出的时长为26.122ms,这就是经常听到的mp3每帧播放时间固定为26ms的由来。
视频H264
视频帧时间戳,分两种类型标准采样时间戳(毫秒时间戳*90)和毫秒时间戳(按帧率计算,1000/帧率=播放持续时间)
- MP4文件写入音频和视频(使用mpeg4ip)
- 使用流式文件读取或写入图片(jpg,png等)或视频(mp4)或音频(mp3)文件
- 用fso将文件名和路径写入数据库实现文件(软件,视频,音频)添加自动化
- 区分mp4格式里面mdat中的音频和视频数据
- ffmpeg代码笔记2:如何判断MP4文件里面的流是音频还是视频流
- 将各种格式flv,avi,mp4等的文件,转码成MP4(无音频)
- 使用mp4v2将aac音频h264视频数据封装成mp4开发心得
- 使用mp4v2将aac音频h264视频数据封装成mp4开发心得
- 使用mp4v2将aac音频h264视频数据封装成mp4开发心得
- 使用ffmpeg将视频转为x264编码的mp4文件
- 如何区分mp4格式里面mdat中的音频和视频数据
- FFmpeg合成h264视频流和aac音频流为mp4
- 流媒体服务器全配置:Darwin Streaming Server,ffmpeg安装和Mpeg4IP ,MP4Box Mp4 hint媒体流化
- 流媒体服务器全配置:Darwin Streaming Server,ffmpeg安装和Mpeg4IP ,MP4Box Mp4 hint媒体流化
- Android中使用又拍云存储来上传文件(包括图片、音频和视频等)
- Android录视频(包含文件操作,Mp4文件合并)
- Confluence 为图片,视频,音频和文档文件使用自动完成
- 使用ffmpeg提取视频中的音频和视频画面
- c++ 中__declspec 的用法
- 使用GDI+进行图片处理时要注意的问题
- Android中Handler引起的内存泄露
- 数据结构基础2_单链表的实现
- light oj 1251 - Forming the Council (2-SAT + 输出任意解)
- MP4文件写入音频和视频(使用mpeg4ip)
- 排序二叉树
- 深拷贝和浅拷贝
- android数据库的基本简单操作
- 查看oracle执行计划(命令实现)
- C++中的vector使用范例
- [Cocoa]_[NSTableView]_[基本使用]
- 11个超棒的iOS开发学习网站
- 调试开源应用《酷欧天气》小结