Closed Kevin111369 closed 1 month ago
我分析了rtsp和rtmp的packet数据,packet的size都是一样的,但是packet的data有所差异,主要是head部分: RTMP 每个packet的前16个字节数据为:
00 00 00 17 67 64 00 1E AC B2 01 40 20 D0 80 00
00 00 04 D5 41 9A 3B 15 FF 04 63 0F C7 12 9F D3
00 00 09 D3 41 9A 4F 08 64 CA 61 5F AB 88 4D 43
00 00 04 CA 41 9A 72 78 43 C9 94 C0 AF 00 31 3F
00 00 06 7D 41 9A 92 78 43 C9 94 C0 AF 00 31 3F
RTSP 每个packet的前16个字节数据为:
00 00 00 01 67 64 00 1E AC B2 01 40 20 D0 80 00
00 00 00 01 41 9A 3B 15 FF 04 63 0F C7 12 9F D3
00 00 00 01 41 9A 4F 08 64 CA 61 5F AB 88 4D 43
00 00 00 01 41 9A 72 78 43 C9 94 C0 AF 00 31 3F
00 00 00 01 41 9A 92 78 43 C9 94 C0 AF 00 31 3F
这是不是mpp的h264解码的缺陷呢,对于rtmp协议的head信息无法解析? @HermanChen
需要将h264码流的视频编码格式转为Annex B格式,使用ffmpeg中的转换函数已经解决了这个问题。
操作
pc端将码流使用ffmpeg推流,rk3588端使用ffmpeg拉流,并将packet送入mpp进行解码
问题
pc端使用rtsp协议将码流推流到板端,可以正常解码,但是使用rtmp协议执行同样的操作,会卡在decode_get_frame(decoder设置的是阻塞模式,没有frame的时候会一直等待)