织梦CMS - 轻松建站从此开始!

罗索

h264_aac合成flv的个人经验之谈

jackyhwei 发布于 2011-12-08 23:04 点击:次 
如果时间戳直接取音视频的时间戳,则试验发现如果第一个音视频时间戳的差值大于200毫秒,有可能出现合成的flv没有声音的现象;如果第一个时间戳比后面的时间戳大,也可能出现flv没有声音的现象。通常是音频时间戳小于视频时间戳,所以我把音频时间戳写在前面。
TAG:

h264_aac合成flv的个人经验之谈,作为自己工作的总结,不当之处,请高手指点。

第一,aac的音频包写成flv时,第一个tag中有一个字段为AudioSpecificConfig

即为ObjectProfile,SamplingFrequencyIndex,ChannelConfiguration,TFSpecificConfig。

其中,ObjectProfile (AAC main ~1, AAC lc ~2, AAC ssr ~3), 通常选中1;

SamplingFrequencyIndex (0 ~ 96000, 1~88200, 2~64000, 3~48000, 4~44100, 5~32000, 6~24000, 7~ 22050, 8~16000...),通常aac固定选中44100,即应该对应为4,但是试验结果表明,当音频采样率小于等于44100时,应该选择3,而当音频采样率为48000时,应该选择2;

ChannelConfiguration对应的是音频的频道数目。单声道对应1,双声道对应2,依次类推。

TFSpecificConfig的说明见标准14496-3中(1.2 T/F Audio Specific Configuration)的讲解,这里恒定的设置为1;

故如果音频才采样率为24K,双声道,则aac的AudioSpecificConfig应该设置成0x1321;如果采样率为48K,6声道,则为0x1261;

第二,关于时间戳。

如果时间戳直接取音视频的时间戳,则试验发现如果第一个音视频时间戳的差值大于200毫秒,有可能出现合成的flv没有声音的现象;如果第一个时间戳比后面的时间戳大,也可能出现flv没有声音的现象。通常是音频时间戳小于视频时间戳,所以我把音频时间戳写在前面。第一个音频时间戳前面的视频就不写了,保证开始写的为音频帧。

(czgwdm)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201112/15443.html]
本文出处:blog.csdn.net/czgwdm 作者:czgwdm 原文
顶一下
(3)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容