是否有使用TCP / IP通过网络发送JPG图像的标准化方法?

问题描述 投票:0回答:2

我正在寻找一种标准化的方法来通过网络流式传输JPG图像。还希望有一个C ++编程接口,该接口可以轻松集成到现有软件中。

我正在研究GPGPU程序,该程序处理数字化信号并将其压缩为JPG图像。图像的大小可以由用户定义,通常图像为1024 x 2048或2048 x 4096像素。我已经编写了“自己的”协议,该协议首先发送一个标头(以字节为单位的图像大小,宽度,高度和相应的通道),然后通过TCP发送JPG数据本身。之后,接收器发送确认所有数据均已正确接收并正确显示的确认,以便可以发送下一张图像。到目前为止,很不幸,我的方法只能达到12 fps,无法满足项目要求。

我确信,有更好的方法具有更高的帧速率。 Netflix和Amzon等流媒体服务采用哪种方法处理UHD视频?我当然搜索了很多,但是找不到满意的结果。

c++ tcp jpeg
2个回答
2
投票

是否存在使用TCP / IP通过网络发送JPG图像的标准化方法?

[有几种Internet协议通常用于通过TCP传输文件。也许最常用的协议是HTTP。另一个较旧的是FTP。

Netflix和Amzon等流媒体服务采用哪种方法处理UHD视频?

首先,他们根本不使用JPEG。他们使用一些视频压缩编解码器(例如MPEG),它们不仅在空间上压缩数据,而且在时间上压缩数据(连续的帧倾向于保存相似的数据)。他们可以用来流传输数据的协议的一个示例是DASH,它通过HTTP操作。


0
投票

我没有特定的库可以很好地完成这些事情,但要记住一些事项:

1)大多数图像/屏幕共享/视频流应用程序以有损方式专门将UDP,RTP,RTSP用于视频流数据。他们使用TCP来控制流数据,例如发送键盘命令,或客户端/服务器之间呈现的内容进行通信,但流传输的数据不是TCP。

2)如果正在流式传输视频,请参见以下现有链接:Video streaming using c++

3)发送单个图像时,您只需要高效的方法即可进行压缩,序列化和反序列化,并且您可能希望以批处理的方式而不是一次仅进行一次。将10个jpeg打包在一起,压缩它们,进行序列化他们,发送。

[您提到了fps,所以听起来您正在尝试流式传输视频,而不仅仅是快速复制图像。我不确定您要做什么。您能否详细说明数字化信号以及为什么必须使用jpeg?它们可以不是其他格式,后来在接收端转换为jpeg吗?

© www.soinside.com 2019 - 2024. All rights reserved.