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
Video 如何通过UDP识别h264视频流中的帧_Video_Udp_H.264 - Fatal编程技术网

Video 如何通过UDP识别h264视频流中的帧

Video 如何通过UDP识别h264视频流中的帧,video,udp,h.264,Video,Udp,H.264,请为我提供一些帮助,以了解通过UDP传输的h264视频中的帧 我已经将视频文件从VLC播放器流式传输到一个端口(localhost:1246),并用C编写了一个UDP套接字程序,将流从UDP端口写入本地文件夹中的二进制文件(test.bin) 现在我的问题是如何从这些数据中获取帧(I/p/B)。请帮我解决这个问题 问候,, Spk通过UDP传输的H.264数据可能会丢失 compatible stream——您需要根据此规范检查数据,以便进一步拆分为帧 原始H.264流,您应该在其中检测每小时

请为我提供一些帮助,以了解通过UDP传输的h264视频中的帧

我已经将视频文件从VLC播放器流式传输到一个端口(localhost:1246),并用C编写了一个UDP套接字程序,将流从UDP端口写入本地文件夹中的二进制文件(test.bin)

现在我的问题是如何从这些数据中获取帧(I/p/B)。请帮我解决这个问题

问候,,
Spk

通过UDP传输的H.264数据可能会丢失

  • compatible stream——您需要根据此规范检查数据,以便进一步拆分为帧
  • 原始H.264流,您应该在其中检测每小时的NAL单位

经过几次研究,我终于得到了答案

我们可以在h264流的NAL数据包中通过

•NAL装置启动代码:00 01 X Y •X=IDR图像NAL单位(25、45、65) •Y=非IDR图像NAL单位(01、21、41、61);01=b帧,41=p帧

参考:

问候,,
Suku PK

通过UDP传输数据时,NAL单元是否可以分散在多个数据报上?如果是这样的话,该如何处理?@ddelnano:是的,它可以是两种方式:小的NAL可以组合成一个数据报,反之亦然,大的NAL可以分成几个部分。上面的RFC链接解释了各自的格式。如果我使用VLC通过UDP单播传输H.264,这是否意味着我的流将是原始H.264,或者这不一定能保证这一点?我看到在VLC中有一个RTP选项,但我没有使用它。很抱歉,如果这没有意义,我刚刚开始学习H.264,目前正在努力实现实时摄像头馈送。@DDELANO:无法通过UDP可靠地传输原始基本H.264流:无交付保证,可能的无序传输和小数据报使得无法在接收端可靠地重建馈源。这就是为什么要进行RTP等额外工作的原因:仍然能够使用UDP作为载波,并且能够在以后重新创建提要。RTP也是一个很好的选择,因为它有很好的文档记录。