【发布时间】:2015-08-31 08:18:56
【问题描述】:
我正在开发一个应用程序,我们正在上传一个小文件来确定用户的连接,并基于我们正在压缩视频/图像文件以便他们快速上传。有没有办法上传视频或图像文件的一部分并将其其他部分比文件的第一部分压缩更多?
【问题讨论】:
标签: compression image-compression
我正在开发一个应用程序,我们正在上传一个小文件来确定用户的连接,并基于我们正在压缩视频/图像文件以便他们快速上传。有没有办法上传视频或图像文件的一部分并将其其他部分比文件的第一部分压缩更多?
【问题讨论】:
标签: compression image-compression
如果没有更多上下文信息,回答您的问题有点困难,但让我试试。
您可以使用任何允许质量可扩展性和嵌入式码流的压缩算法,而不是在检查用户连接后进行压缩。例如,使用 JPEG2000,您可以定义多个质量层,每个层都可以由目标比特率定义。然后,您的应用程序可以发送第一层来估计链接速度,然后发送尽可能多的层。用户可以稍后根据需要上传丢失的图层。 Kakadu 是 JPEG2000 的一个实现,它允许您执行此操作,尽管可能需要一些时间来确定正确的调用。 根据您的具体问题,您可能还想查看 JPEG2000 的 JPIP 协议以进行交互式传输。
除了 JPEG2000,您可能还想看看 h264 (SVC) 和 HEVC (SHVC) 视频编码器的可扩展扩展。
最后,如果您不介意需要一些时间和带宽,您可以发送任何数据以检测速度并在之后以您喜欢的任何方式压缩图像(:
【讨论】:
比特率(直接转换为文件大小)是一个非常灵活的参数,您可以在压缩视频时使用它。
所谓灵活,是指可以在压缩视频时连续或随时更改,这意味着可以压缩视频的不同部分以要求更高或更低的带宽 - 这也对视频的质量产生成比例的影响视频。
因此,无论您当前使用什么工具来压缩视频,请探索它提供的比特率设置选项,并根据您的可用带宽尝试使用它。希望这可以帮助。
【讨论】:
您可以将原始视频帧分成多个块,例如每个块 2 秒。每次你只用封闭的 GOP 压缩编码一个块。您可以单独上传这些比特流文件。这就是 Youtube 或 Netflix 处理视频流的方式。
【讨论】: