我正在开发一款游戏,我希望将相机的输出从服务器(呈现所有内容)传输到多个客户端。为简单起见,我忽略了所有音频数据。
目前,我将相机的渲染记录为400x300分辨率的位图,然后将其转换为JPEG,添加时间戳并通过UDP将其发送到客户端。
使用给定的分辨率,我的有效负载大小从13KB到20KB不等。如何使其更有效?
答案 0 :(得分:1)
使用视频编解码器,而不是图像编解码器。
JPEG适用于单张图像。 (有MJPEG,这实际上是一个黑客...但它并不是那么好的质量。)
大多数设备都有可用的H.264硬件编解码器。如果没有,您可以在软件中使用H.264,或使用免费开放的编解码器,如VP8或VP9 ......请注意,那些需要更多CPU进行编码。 (并不是说它在如此低的分辨率下会很重要。)
答案 1 :(得分:0)
考虑到你想要保留图像尺寸,我可以想到两件可以减少有效载荷的事情:
这是我刚刚做的计算:
400 x 300 JPEG,质量10/10 = 29.6KB。
400 x 300 JPEG,质量为8/10 = 19.6KB。
400 x 300 JPEG,5/10质量= 8.7KB。
400 x 300 JPEG,2/10质量= 5.6KB。
因此,正如您所看到的,失去0.2质量会导致丢失1/3的图像重量,这很重要。