h264和aac封装flv

本文详细介绍了FLV文件格式的结构,包括文件头、音频、视频和脚本数据的tag。重点讲解了h264和aac如何封装到FLV中,包括NALU的不同类型及其在FLV中的表示方式,以及脚本数据中元数据的AMF封装格式。
摘要由CSDN通过智能技术生成
flv格式解析

FLV是一个二进制文件,简单来说,其是由一个文件头(FLV header)和很多tag组成(FLV body)。tag又可以分成三类:audio,video,script,分别代表音频流(0x8),视频流(0x9),脚本流(0x12),而每个tag又由tag header和tag data组成。

flv官方标准文档

分析之前推荐一个flv分析工具:flv分析工具
工具的使用说明和出处:使用说明

以一个具体的flv文件为例具体分析:

文件头由9bytes组成:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kbntqCE6-1580714898238)(https://i.loli.net/2020/01/20/SADYzaEdRkWUGQ9.png)]

前3个bytes是文件类型,总是“FLV”,也就是(0x46 0x4C 0x56)。第4btye是版本号,目前一般是0x01。第5byte是流的信息,倒数第一bit是1表示有视频(0x01),倒数第三bit是1表示有音频(0x4),有视频又有音频就是0x01 | 0x04(0x05),其他都应该是0。最后4bytes表示FLV 头的长度,3+1+1+4 = 9。

FLV header后面就是FLV body,FLV body中包含很多个FLV tag,tag的分类有三种:0x08音频、0x09视频、0x12脚本。

每个tag中包含tag头和tag体。

每个tag前面还有一个previous size包 记录这上一个tag的数据的长度。先简单说一下tag head:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S3t4X8W4-1580714898253)(https://i.loli.net/2020/01/20/aNEIDfAQyx7vlpH.png)]

1byte Tag类型,3bytes数据长度记录,3bytes时间戳,一个扩展时间戳bype,3bytes StreamID

每一个tag第一部分是tag header,tag header长度为11bytes,但是每个tag header前面有4bytes记录着上一个tag的长度。tag header的第1个byte为记录着tag的类型,音频(0x8),视频(0x9),脚本(0x12);第2到4bytes是数据区的长度,也就是tag data的长度;再后面3个bytes是时间戳,单位是毫秒,类型为0x12则时间戳为0,时间戳控制着文件播放的速度,可以根据音视频的帧率类设置;时间戳后面一个byte是扩展时间戳,时间戳不够长的时候用;最后3bytes是streamID,但是总为0,再后面就是数据区了(tag data),也即是h264的裸流,tag header 长度为1+3+3+1+3=11。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1OjXnzFp-1580714898256)(https://i.loli.net/2020/01/20/ezOrFnGiDTvUWL6.png)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 海思H265 AAC生成FLV是指使用海思H265编码器和AAC音频编码器生成FLV格式的视频文件。H265和AAC是当今最先进和广泛使用的视频和音频编码标准,具有更高的视频和音频质量和更小的文件大小。 H265编码器是一种先进的视频编码器,也称为HEVC(High Efficiency Video Coding)。它是一种高效的视频压缩技术,可以将视频文件大小缩小一半或更多,而不会影响视频质量。因此,当使用海思H265编码器生成FLV文件时,您可以期望更小的文件大小和更好的视频质量。 AAC音频编码器是一种广泛使用的音频压缩技术,它提供更高的音频质量和更小的文件大小。使用AAC音频编码器生成FLV文件时,您可以期望更好的音频质量,更小的文件大小和更好的播放兼容性。 在生成FLV文件时,需要考虑视频和音频的编码参数和转封装的技术。使用海思H265和AAC编码器生成FLV文件可以通过调整编码参数和使用专业的转封装软件来实现。因此,您可以期望更高效的视频和音频数据传输以及更好的文件播放兼容性。 ### 回答2: 海思H.265和AAC是一种视频和音频编码格式,用于在数字视频或音频传输中实现高级别的压缩和高质量的解码效果。这种技术被广泛应用于数字媒体领域,如流媒体、视频会议、监控和广播。 生成FLV文件(Flash视频格式)的过程中,海思H.265和AAC技术可以帮助用户实现高效的数据传输和压缩,同时提供高质量的视频和音频解码。因为FLV是一种流式格式,需要在传输过程中实时解码和显示数据。海思H.265和AAC技术可以帮助确保视频数据和音频数据的完整性和准确性,并提供更快的解码速度和更高的画质。这对于视频直播、视音频文件存储和播放等应用是非常重要的。 总的来说,海思H.265和AAC技术的优势在于其高效率、高画质、高稳定性和高兼容性。这种技术已经成为数字媒体领域的重要组成部分,将继续在未来的数字媒体发展中发挥重要作用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值