任何帮助表示赞赏。FFMPEG H.264到JPEG实时视频
我们正在将H.264流转码为通过网络套接字发送到浏览器的Jpgs。我们希望这样做的原因是我们可以实时向浏览器提供实时视频。不需要浏览器不可知的方式插件。如果有更好的方法来做到这一点,那么了解更多信息将会非常棒。视频来源是H.264,但我们不能改变这一点。
当我们降低FPS时,我们发现摄像机视频输入有较大的滞后。例如在1 FPS时,我们看到浏览器中的视频滞后8秒。在15 FPS时,视频大约落后1秒。因此,即使在1 FPS时,它也会每秒更新一次,但帧落后8秒。
我们认为这是因为具有较低帧速率的FFMPEG必须等待较长的I帧,并且不会发送Jpeg到web套接字,直到它具有完整的一个。我们宁愿它发送一个Jpeg,而不必等到IFrame到达,我们宁愿看到一个逐渐被浏览器填满的局部图像。我们无法忍受浏览器中的大于0.8秒的延迟。当相机设置为发送MJPEG时,我们会看到0.250秒的滞后。使用H.264我们会看到1.25秒,我们需要将其降至0.8秒。所以我们真的希望微调H.264来削减一些时间。这就是为什么当我们降低FPS的第一种方法使情况变得更糟时,我们很惊讶,所以想知道还有什么需要与FPS一起进行微调以获得好的结果。
FFMPEG是否有任何选项可以告诉它在第一批数据到达时立即发送Jpegs?或者,我们应该看看其他调整途径?
这里是FFMPEG参数: ffmpeg的 -buffer_size 1024000 -r 15 -i的rtsp://10.140.150.92/02441987-0826-4dc2-b9bd-62efdc0dd951/02441987-0826-4dc2-b9bd-62efdc0dd951_vs1 ?标记= 02441987-0826-4dc2-b9bd-62efdc0dd951^LVEAMOKTD^100^40^26^1500482113^a97effd2a6f85c4a0b5e93953b27c8e1eb40ca77 &用户名= USER1 -f IMAGE2 -multiple_requests 1 -icy 0 -chunked_post 0 -q:v 31 -vsync 1 -r 15 -vf scale = 640:-1 http://127.0.0.1:58014/video/cameraTag_deviceId_22cameraUid_-1scale_640:-1cameraOrigin_requestedStreams_videostream1/frame-%03d.jpeg
非常感谢, 乔。
谢谢。我添加了一些额外的信息,希望能够将您需要的上下文添加到我的问题中。 –