我需要能够检查ts数据包(查看视频PID 481)并确定该数据包是否包含IDR帧。我的理解是,我需要寻找NAL单元的开始代码,然后再寻找其他东西来表示它是IDR帧的开始。请有人澄清一下吗?
这是一个我认为是IDR帧的数据包示例,但需要能够从有效载荷数据中对其进行证明:
* Packet 2
---- TS Header ----
PID: 481 (0x01E1), header size: 12, sync: 0x47
Error: 0, unit start: 1, priority: 0
Scrambling: 0, continuity counter: 1
Adaptation field: yes (8 bytes), payload: yes (176 bytes)
Discontinuity: 1, random access: 1, ES priority: 0
PCR: 0x000000013A5
---- PES Header ----
Stream id: 0xE0 (Video 0)
PES packet length: 0 (unbounded)
---- Full TS Packet Content ----
47 41 E1 31 07 D0 00 00 00 08 7E E5 00 00 01 E0 00 00 84 C0 0A 31 00 05
E5 CD 11 00 05 AD 8D 00 00 00 01 09 10 00 00 00 01 67 64 00 29 AC D9 40
78 04 4F DE 02 94 04 04 05 00 00 03 00 01 00 00 03 00 32 E6 80 00 F4 24
00 04 F5 8A 49 30 0F 8B 16 CB 00 00 00 01 68 FA A7 CB 00 00 01 06 00 05
95 6C 60 E4 85 80 00 00 01 06 05 FF FF F5 DC 45 E9 BD E6 D9 48 B7 96 2C
D8 20 D9 23 EE EF 78 32 36 34 20 2D 20 63 6F 72 65 20 31 34 38 20 2D 20
48 2E 32 36 34 2F 4D 50 45 47 2D 34 20 41 56 43 20 63 6F 64 65 63 20 2D
20 43 6F 70 79 72 69 67 68 74 20 32 30 30 33 2D 32 30 31 36
答案 0 :(得分:1)
无法从该数据包中分辨出来。但是,它很可能是IDR。我说是有可能的,因为查看NALU,我可以看到澳元export default ({images})=>{
return(
<>
<CardItem style={styles.moldura}>
<CardItem style={styles.itemCard}>
<ImageBackground
source={{uri:images[0]}}
style={styles.cardImageMenor}
>
</ImageBackground>
<ImageBackground
source={{uri:images[1]}}
style={styles.cardImageMenor}
/>
</CardItem>
</CardItem>
</>
);
}
,SPS 00 00 00 01 09
,PPS 00 00 00 01 67
然后是SEI 00 00 00 01 68
但是,SEI会占用数据包的其余字节,您将需要继续从该PID读取数据包,直到对下一个NALU进行细化并查看其IDR。