您的位置:首页 > 其它

h264_aac合成flv的个人经验之谈

2016-03-12 23:06 381 查看
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没有声音的现象。通常是音频时间戳小于视频时间戳,所以我把音频时间戳写在前面。第一个音频时间戳前面的视频就不写了,保证开始写的为音频帧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: