Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing 作为同步字节的0x47和作为数据的0x47之间的解复用器是如何区别的?_Parsing_Video_H.264_Mpeg_Transport Stream - Fatal编程技术网

Parsing 作为同步字节的0x47和作为数据的0x47之间的解复用器是如何区别的?

Parsing 作为同步字节的0x47和作为数据的0x47之间的解复用器是如何区别的?,parsing,video,h.264,mpeg,transport-stream,Parsing,Video,H.264,Mpeg,Transport Stream,对于解复用器,输入是一个字节流。一切都是零和一的。现在,解析器如何区分数据中的0x47和传输流头的同步字节0x47 例如,如果解复用器接收的数据是0x47 0x56 0xef 0x47。。。 它如何知道哪个0x47是同步字节 它是否在同步字节后查找任何附加位,以确保它读取的0x47确实是头的开始?机制是什么 对于这方面的任何解析器都是如此。H.264解析器检查NAL开始代码。它如何区分数据中的实际起始代码和起始代码。因为对于解析器来说,所有内容都是字节 谢谢。同步字节的发送间隔正好为188字节。

对于解复用器,输入是一个字节流。一切都是零和一的。现在,解析器如何区分数据中的0x47和传输流头的同步字节0x47

例如,如果解复用器接收的数据是0x47 0x56 0xef 0x47。。。 它如何知道哪个0x47是同步字节

它是否在同步字节后查找任何附加位,以确保它读取的0x47确实是头的开始?机制是什么

对于这方面的任何解析器都是如此。H.264解析器检查NAL开始代码。它如何区分数据中的实际起始代码和起始代码。因为对于解析器来说,所有内容都是字节


谢谢。

同步字节的发送间隔正好为188字节。如果遇到
0x47
,并且188个字节之后,则不存在另一个
0x47
。它不是一个同步字节。接下来,它等待PAT或PMT,因为这些数据包具有校验和。因此,如果校验和匹配,并且每188字节就有一个
0x47
,则流同步。意外发生的几率是天文数字。如果它真的这样做了,那么在尝试解码流时,最终会出现其他问题,并且过程将重新开始


就h.264而言。开始代码
000001
在流中不合法。如果编码器确实产生了这个字节序列,它被转义为
00000301
,并且解码器知道在
0000
之后忽略
03
,首先,解析器应该识别一个合适的包边界,以便解码器开始解码。解析器通过以下方式执行此操作:

  • 识别一行中的3个同步字(0x47)
  • 两个同步字之间的距离为188字节
如果达到上述两个条件,解析器将假定一个适当的数据包边界,然后启用

请更正或更新