群内的朋友们好!
我使用的平台是ipnc rdk 3.8 , 我在h264编码的有关NALU参数设置如下:
staticParams->nalUnitControlParams.naluControlPreset = IH264_NALU_CONTROL_USERDEFINED;
staticParams->nalUnitControlParams.naluPresentMaskStartOfSequence = 0x21A0;
staticParams->nalUnitControlParams.naluPresentMaskIDRPicture = 0x21E0;
staticParams->nalUnitControlParams.naluPresentMaskIntraPicture = 0x2102;
staticParams->nalUnitControlParams.naluPresentMaskEndOfSequence = 0xC00;
然后我保存了h264的编码帧数据,发现输出的帧数基本大致如下:
00000000h: 00 00 00 01 27 64 00 32 AD 84 05 45 62 B8 AC 54 ; ….'d.2瓌.Eb脯T
00000010h: 71 08 0A 8A C5 71 58 A8 E2 10 24 85 21 39 3C 9F ; q..娕qXㄢ.$?9<?
00000020h: 27 E4 FE 4F C9 F2 79 B9 B3 4D 08 12 42 90 9C 9E ; '濑O沈y钩M..B悳?
00000030h: 4F 93 F2 7F 27 E4 F9 3C DC D9 A6 17 2A 05 82 5A ; O擈'澌<苜?*.俍
00000040h: 6C 80 00 01 F4 00 00 61 A8 70 00 00 C3 50 00 0C ; l€..?.a╬..肞..
00000050h: 35 05 EF 75 94 00 00 00 01 28 FE 04 62 C0 00 00 ; 5.飖?…(?b?.
00000060h: 00 01 06 00 07 81 2C EB 00 32 A5 40 01 07 00 00 ; …..??2….
00000070h: 3C 00 00 03 00 04 80 00 00 00 01 25 88 80 00 14 ; <…..€….%垁..
00000080h: 00 80 8F F1 6D 5F 38 89 BC D2 A2 6D 61 7E C3 1D ; .€忨m_8壖尧ma~?
00000090h: CB F5 DF 15 9D 69 6A A1 C2 85 E6 7B 32 50 6B 00 ; 缩?漣j÷呮{2Pk.
000000a0h: FC AD DB 95 FE DC 5D 9F 4E AE ; 蹠]烴?
所采集的帧数据中都有
00 00 00 01 27 : SPS数据
00 00 00 01 28 : PPS数据
00 00 00 01 25 : IDR数据
00 00 00 01 06 : SEI数据
想请教下群内的朋友, 怎样设置H264的参数我才能将SPS, PPS, IDR, SEI这些内容分成单独的帧输出呢?
我的意思就是一帧中只存在00 00 00 01 27 (SPS),然后另外一帧中只存在00 00 00 01 28(PPS),然后另外一帧中只存在00 00 00 01 25(IDR), ..
因为这样混合在一帧中输出,导致有些NVR无法解码播放出来.先谢谢了.
Ternence_Hsu:
你好;
你现在的输出模式就是 slice 的输出模式;还有一种模式是按固定的size输出;
你现在只需要把 VCODEC_FRAME_TYPE_I_FRAME 数据包 自己写程序分解出 pps sps sei idr 就可以了;