我有一个c#应用程序来使用ffmpeg来流真实的相机图像。输入图像采用原始的8位灰度格式.我创建了一个ffmpeg流,使用标准输入来输入图像,并将输出包发送到websocket客户端。
我使用以下配置启动外部ffmpeg进程:
-f rawvideo -pixel_format gray -video_size " + camera.Width.ToString() + "x" + camera.Height.ToString() + " -framerate 25 -i - -f mpeg1video -b:v 512k -s 320x240 -典型图像大小为1040*1392像素
我使用jsmpeg库在浏览器上显示流。
这是一个合理的延迟(在本地主机上是500 is ),但是当相机图像真的是黑暗(黑色图像)时,延迟是非常大的(在本地主机上是2-3秒)。当图像在一个黑色周期后再次出现亮点时,需要2-3秒才能“同步”。
我在想,黑色图像很容易压缩,会生成非常小的包,jsmpeg几乎没有任何信息可供显示,直到完整的数据包到达,但我无法证明我的理论。
我玩了像比特率和fps这样的ffmpeg参数,但是没有什么改变。
有什么我可以尝试的设置吗?
发布于 2017-11-19 08:09:05
图像的大小取决于噪音的大小。明亮的图像通常有较小的噪音和清晰的区域,压缩成更小的尺寸。
https://stackoverflow.com/questions/47374795
复制相似问题