【发布时间】:2020-01-10 02:24:04
【问题描述】:
我正在不可靠的网络上使用 HEVC 编码/解码创建直播应用。 HEVC 中有可用的 IDR/I/P/B 帧类型,我使用 IDR 和 P 帧,因为源视频是实时捕获的,并且从捕获设备到显示的延迟很关键。
由于网络不可靠,因此需要预计流式传输中的任何帧都可能被丢弃。 为了避免解码后的图像出现锯齿状,我将接收器实现如下:
- 正常运行时 1 个 IDR 帧和 29 个 P 帧(= 总共 30fps)秒数
- 如果 IDR 帧被丢弃,即将到来的 P 帧不会传递给解码器并等待新的 IDR 帧
- 如果 P 帧被丢弃,则跳过该帧并将接收到的下一帧传递给解码器
这个过程源于我的理解,P帧指的是最新的IDR帧,所以任何P帧都可以被丢弃,而任何IDR帧都不能被丢弃。
但是,解码后的图像仍然是锯齿状的(看起来解码器无法补偿运动矢量)
我想到了以下问题:
- P 帧是否指最后的 IDR 帧?或者任何帧(包括 IDR/I/P/B)都不能按照规范在 HEVC 上丢弃?
- 有什么方法可以避免在不可靠的网络上流式传输的解码视频中出现锯齿?
非常感谢您!
【问题讨论】:
标签: udp video-streaming live-streaming hevc real-time-data