想做视频对讲产品,网上写了很多,似乎都没有完整介绍的,可能我理解不够吧,不过最终可以解码了
先前用ffmpeg解码,弄了好久都没有输出,主要原因是:
android录制视频用的H264压缩用的是rtp格式流,而不是Annexb格式,所以要自己去掉代表长度的4个字节,添加上sps pps 和 0 0 0 1的NAL分割字节,head[0 0 0 1] sps(type=7) Head pps(type= 8) NAL[type = 1 或者5],所以最终的H264流应该是:
[head 7 head 8 head 5] [head 1] [head 1] [head 1] [head 1] .....[head 1] [head 7 head 8 head 5] [hed 1] [head 1] [hed 1] [head 1] .....[head 1] ....
这里每个方括号中的数据一次发给ffmpeg解码器,如果你以head为分割,一个个发个解码器,那么遇到type 为sps或者pps时候就解码出错
先记下来,后续用andoid的硬解码试试看行不行