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帧对应的采样样本的个数/采样频率

当前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/帧率=播放持续时间)



0 0
原创粉丝点击