C++ 压缩视频的原始缓冲区数据(C+;+;)

C++ 压缩视频的原始缓冲区数据(C+;+;),c++,opencv,video,compression,C++,Opencv,Video,Compression,我有原始的缓冲区视频数据,当客户端请求时,我需要通过网络传输这些数据。这个数据非常庞大。因此,我需要将其压缩并保存在我的服务器位置。 我理解这样做的一种方法是将数据转换成视频文件“.avi”并保存,然后根据要求逐帧流式传输。 我使用OpenCV的VideoWriter功能将缓冲区转换为mat,然后转换为带有MPEG4编码的“.avi”文件 但是,我想知道是否有任何方法可以压缩原始缓冲区数据并将其保存在文件中。如果可能的话,有人能建议我吗 谢谢。您需要无损压缩吗?然后使用例如LZ压缩工作。但通常情

我有原始的缓冲区视频数据,当客户端请求时,我需要通过网络传输这些数据。这个数据非常庞大。因此,我需要将其压缩并保存在我的服务器位置。 我理解这样做的一种方法是将数据转换成视频文件“.avi”并保存,然后根据要求逐帧流式传输。 我使用OpenCV的VideoWriter功能将缓冲区转换为mat,然后转换为带有MPEG4编码的“.avi”文件

但是,我想知道是否有任何方法可以压缩原始缓冲区数据并将其保存在文件中。如果可能的话,有人能建议我吗


谢谢。

您需要无损压缩吗?然后使用例如LZ压缩工作。但通常情况下,对视频和图像使用破坏性压缩,例如基于MPEG4/Fourier的方法。(MPEG4和jpeg的一部分是离散余弦变换)。Afaik ffmpeg和avconv可以处理原始视频数据感谢您的回复?你能详细说明一下,或者给我一些链接,让我可以阅读这些方法吗?