我有一个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库
在浏览器上显示流这适用于合理的延迟( localhost 上约500毫秒),但是当相机图像非常暗(黑色图像)时,延迟非常大(约2-3秒>本地主机)。在黑色时段后,当图像上有一些明亮的东西时,“同步”需要约2-3秒。
我认为黑色图像非常容易压缩并且会生成非常小的包,jsmpeg几乎没有信息可以显示并等到完整的数据包到达,但我无法证明我的理论。
我使用了ffmpeg参数,例如比特率和 fps ,但没有任何改变。
我可以尝试任何设置吗?
答案 0 :(得分:1)
图像的大小取决于噪点的大小。明亮的图像通常具有较小的噪点,并且具有压缩成较小尺寸的清晰区域。