有没有办法对视频进行编码,以便前后播放非常流畅?在h264有可能吗?
我对视频编码基本结构的理解是,如果视频是由帧组成的
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 ...
被编码为
i1 d2 d3 d4 d5 i6 d7 d8 d9 d10 ...
哪里
i(k) == f(k), d(k) == f(k) - f(k-1)
即 i
是一个iframe和 d
是一个帧差异,因此视频大小远小于所有图像(帧)的大小,因为增量小于整个帧。然后得到 f8
,我要从最近的iframe流式传输和解码 i6
并应用增量。
因此,每帧的每帧解码/流媒体成本最多是iframe的成本。但是,落后,它可以更多。例如,如果开启 f6
我想转到前一帧 f5
,我需要解码前一个iframe中的所有内容 f1
。有没有办法对事物进行编码,以便不会发生这种情况,例如通过另外记录方便(以及某种程度上多余的)信息 f6 - f5
?
我熟悉ffmpeg,理想情况下想使用它。
我的用例如下:
我正在将视频流式传输到移动客户端。视频始终暂停,用户通过滑块来回搜索。向后搜索有时会冻结,我相信它正在通过一个关键帧,并且必须返回很多并重新编码以达到前一帧。前瞻性很好。