目录
1.4 防竞争字节(Emulation Prevention)
3.2 陷阱二:extradata 更新了但 BSF 不知道
3.4 陷阱四:Annex B 转 AVCC 时 SPS/PPS 重复
觉得有用,就请您帮忙点赞转发收藏吧,您的鼓励是我创作的动力,多谢看官。
由于能力水平有限,文中的错误或不严谨的地方在所难免,还请批评指正。
摘要:H.264 裸流有两种封装"方言":Annex-B 和 AVCC,差异在于 NALU 如何定界以及参数集(SPS/PPS)如何传递。Annex-B 用起始码(
00 00 00 01)分隔 NALU,SPS/PPS 周期性嵌入码流,具备自同步能力,适合直播流(TS/RTP/RTSP);AVCC 用 4 字节长度前缀定界,SPS/PPS 集中存放在 extradata(avcC box)中,适合文件存储(MP4/FLV/MKV)。两者选错直接导致播放器黑屏——MP4 直推直播不挂 BSF 翻译,解码器收不到带内参数集,无法建立解码上下文。转换通过 FFmpeg 的 Bitstream Filter 完成:h264_mp4toannexb(AVCC→Annex B)和h264_annexbtomp4(反向)。跨平台时需注意:Android MediaCodec 只认 Annex B,iOS VideoToolbox 只认 AVCC,浏览器 MSE 期望 AVCC。排查时通过 hexdump 看前几字节(起始码 vs 长度前缀)即可快速判定格式。。
订阅专栏 解锁全文
416

被折叠的 条评论
为什么被折叠?



