记录一下最近的debug过程:
264码流的开始部分必须要有sps和pps,否则解析不了。
1.00 00 00 01 67
SPS
2.00 00 00 01 68
PPS
3.00 00 00 01 65
I帧
下面实际的打印信息:
E/ScreenRecord( 7386): INFO_FORMAT_CHANGED: AMessage(what = 'codc', target = 2) = {
E/ScreenRecord( 7386): int32_t what = 1869968451
E/ScreenRecord( 7386): string mime = "video/avc"
E/ScreenRecord( 7386): int32_t width = 1280
E/ScreenRecord( 7386): int32_t height = 400
E/ScreenRecord( 7386): Buffer csd-0 = {
E/ScreenRecord( 7386): 00000000: 00 00 00 01 67 42 00 29 e5 40 28 06 72 ....gB.)怨.r
E/ScreenRecord( 7386): }
E/ScreenRecord( 7386): Buffer csd-1 = {
E/ScreenRecord( 7386): 00000000: 00 00 0

本文记录了在处理H264码流时,SPS(Sequence Parameter Set)和PPS(Picture Parameter Set)对于码流解析的关键性。在开始部分,sps和pps是必需的,否则无法正确解析。在Android硬编解码场景中,解码器输出的第一笔数据包含CSD-0和CSD-1,它们分别对应SPS和PPS。在封装过程中,必须将CSD-0和CSD-1写入AccessUnit,并在MediaMuxer编码时设置,以确保正确的码流处理和TS文件生成。
最低0.47元/天 解锁文章
1653

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



