2 qq 25369215 qq_25369215 于 2017.08.28 19:44 提问

QT socket接收端每一次接收缓冲区数据的延时问题。

我想实现局域网视频传输功能,客户端通过调用摄像头将每一帧画面传送到服务器端,服务器端将获致的画面显示出来,客户端是在Linux系统上,服务器端是在Windows系统上。在客户端中我的QSocket类对象调用write()发送数据流,服务器端readyread()信号关联的槽函数中用readAll()来读取缓冲区中的数据流,但是在读取数据的时候,我发现每一次读取数据后会有几毫秒的延时才会继续读取后来的数据,并且缓冲区每次也只有3472个字节的数据可读取,我的每帧画面大概有300多K,所以正因为这种延时我在客户端发送每帧画面的频率不能过快,大概只能一秒一帧才会正常显示画面。这个问题困扰我很长时间了,我应该怎样处理这种问题???????

补充,从windows上发送数据给Linux不会有上述问题,视频很流畅。

1个回答

jklinux
jklinux   2017.08.31 09:56

要提速可以把视频数据编码压缩过后再发,同时设置socket的bufferSize为大点

Csdn user default icon
上传中...
上传图片
插入图片