我开发了一个运行在windows操作系统上的应用程序。此应用程序正在解码传入的视频流并在屏幕上显示。假设我有一个4K监视器,应用程序将在该监视器上显示4个4K流,因此每个流都将显示为1080p。解码4 4K码流并缩放到1080p显示耗费大量资源,特别是解码部分,即使用GPU解码也是如此。有没有可能解码4K流的一些像素(比如每4个像素中的1个),然后将其插值为1080p视频?或者有没有其他方法可以在解码许多4K流的同时消耗更少的资源?(我使用ffmpeg进行解码)
发布于 2020-05-27 21:26:10
是否可以解码4K流的一些像素(例如每4个像素中的1个),然后将其插值为1080p视频?
不,这是不可能的,视频是通过将其从空间域转换到频域来压缩的。所得到的视频位流甚至不包含像素解码是逆转这一操作的过程。重采样是不可能的(或者至少是不切实际的),而在频域中,必须首先将其转换回空间域。
,或者有没有其他方法可以在解码许多4K流的同时消耗更少的资源?
使用硬件解码器,如nvdec或quicksync (如果计算机的视频卡上有)。
https://stackoverflow.com/questions/62036256
复制相似问题