程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了来自 RTSP 流信息的 FPS 与实际帧率不匹配大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决来自 RTSP 流信息的 FPS 与实际帧率不匹配?

开发过程中遇到来自 RTSP 流信息的 FPS 与实际帧率不匹配的问题如何解决?下面主要结合日常开发的经验,给出你关于来自 RTSP 流信息的 FPS 与实际帧率不匹配的解决方法建议,希望对你解决来自 RTSP 流信息的 FPS 与实际帧率不匹配有所启发或帮助;

我有一个来自 IP 摄像机的 25FPS RTSP 流。我可以成功显示视频流。但是在使用 ffmpeg(实际上是 ffprobe)分析流时,我观察到每秒帧数较少:

$ ffprobe -rtsp_transport tcp -i rtsp://camera_ip:554/stream -SELEct_streams v:0 -show_frames -show_entrIEs frame=coded_picture_number,pkt_pts_time -of csv=p=0
Stream #0:0: VIDeo: h264 (Main),yuvj420p(pc,bt709,progressivE),640x480,25 fps,25 tbr,90k tbn,50 tbc
0.400000,0
0.080000,1
0.120000,2
0.200000,3
0.240000,4
0.320000,5
0.360000,6
0.440000,7
0.480000,8
0.560000,9
0.600000,10
0.680000,11
0.720000,12
0.800000,13
0.840000,14
0.920000,15
0.960000,16
1.040000,17
1.080000,18
1.160000,19
1.200000,20
1.280000,21
1.320000,22
1.400000,23
1.440000,24
1.520000,25
1.560000,26
1.640000,27
1.680000,28
1.760000,29
1.800000,30
1.880000,31
1.920000,32
2.000000,33

我们可以清楚地看到一些帧之间的 80 毫秒间隔,从而产生了大约 16 帧的流。

我观察到 GStreamer 存在相同的帧率问题(rtpjitterbuffer 中的打印信息表明帧间隙有时为 80 毫秒,有时为 40 毫秒)。但奇怪的是,我在 HDMI-RJ45 解码器上遇到了同样的问题,我怀疑同样的问题来自 2 个不同的设备。 我没有使用 -loglevel 调试或跟踪获得更多信息。 有人知道流中出了什么问题吗?

(我使用了 ffprobe 4.2.3 和最后一个“2021-05-09-git-8649f5dca6-full_build-www.gyan.dev”,结果相同,而 GStreamer 1.16.2 使用了“urisourcebin !h264depay”这样的管道!h264parse ! fakesink")

编辑:相机跳帧是由激活选项中的第三个流引起的。我发现它每秒钟跳过完全相同的帧真的很奇怪。但是,我仍然没有找到我的 RTSP 编码器降频的原因。 无论如何,这实际上与硬件有关,与软件无关。

解决方法

相机,尤其是便宜的相机,有时会在无法跟上编码的情况下跳帧。相机,而不是 GStreamer、ffmpeg 或其他软件,负责跳帧。这或多或少是正常的。

大佬总结

以上是大佬教程为你收集整理的来自 RTSP 流信息的 FPS 与实际帧率不匹配全部内容,希望文章能够帮你解决来自 RTSP 流信息的 FPS 与实际帧率不匹配所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。