有没有办法将 image/video 文件拆分成多个部分并压缩某些部分?

Is there a way to split an image/video file into parts and compress certain parts?

我正在开发一个应用程序,我们正在上传一个小文件来确定用户连接,并基于我们正在压缩 video/image 文件以便他们快速上传。有没有办法上传视频或图像文件的一部分,并比文件的第一部分压缩更多的其他部分?

如果没有更多上下文信息,很难回答你的问题,但让我试试。

您可以使用任何允许质量可扩展性和嵌入式码流的压缩算法,而不是在检查用户连接后进行压缩。例如,对于 JPEG2000,您可以定义多个质量层,每个质量层都可以由目标比特率定义。然后,您的应用可以发送第一层以估计 link 速度,然后发送尽可能多的层。用户稍后可以根据需要上传缺失的图层。 Kakadu 是 JPEG2000 的一个实现,可让您执行此操作,但可能需要一些时间来确定正确的调用。 根据您的具体问题,您可能还想看看用于交互式传输的 JPEG2000 的 JPIP 协议。

除了 JPEG2000,您可能还想看看 h264 (SVC) 和 HEVC (SHVC) 视频编码器的可缩放扩展。

最后,如果您不介意需要一些时间和带宽,您可以发送任何数据来检测速度,然后以任何您喜欢的方式压缩图像 (:

比特率(直接转换为文件大小)是一个非常灵活的参数,您可以在压缩视频时使用它。

灵活是指在压缩视频时可以连续或随时更改,这意味着可以压缩视频的不同部分以要求更高或更低的带宽-这也对视频质量。

因此,无论您目前使用什么工具来压缩视频,请探索它提供的比特率设置选项,并根据您的可用带宽尝试使用它。希望这可以帮助。

您可以将原始视频帧分成块,比如每块 2 秒。每次你只用封闭的 GOP 压缩编码一个块。您可以单独上传这些比特流文件。这就是 Youtube 或 Netflix 处理视频流的方式。