前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FFmpeg中的子帧延迟

FFmpeg中的子帧延迟

作者头像
用户1324186
发布2019-10-27 23:25:44
1.9K0
发布2019-10-27 23:25:44
举报
文章被收录于专栏:媒矿工厂媒矿工厂

本文来自IBC 2019(International Broadcasting Convention)中的演讲,主要内容是FFmepg编码的子帧延时。演讲内容来自EBU(European Broadcasting Union)的Kieran Kunhya。

Kieran Kunhya首先比较了基于整帧图像的编码和子帧编码之间的延时。基于整帧图像的编码需要在接收到整帧图像后才开始编码,这样在编码阶段会引入至少一帧的延时,同样在解码阶段也会引入一帧的延时。而子帧编码却不需要在接收完整幅帧图像就可以开始,它将一帧图像的连续N行看作为一个子帧(通常是连续16行或者32行),也称为一个切片(slice),在接收完一个切片后就可以开始编码,这样编解码阶段只会各自引入一个切片的延时,一个切片的延时大约为40us,所以子帧编码会大大降低编解码过程引入的延时。

图1 子帧编解码流程

接着,Kieran Kunhya阐述了子帧编码的编解码流程,如图1所示。编码器接收到一个切片以后,就可以对当前的切片进行编码,然后经过网络传输后送到解码器,解码器对切片解码后进行切片拼接,恢复出每一帧图像。为了使FFmpeg支持子帧编码,引入draw_horiz_band,一旦切片编解码完成,则将其进行传输或者在硬件上渲染。此外,在使用H.264编码的时候,要设置deblock_flag=2,即对切片边缘不进行去块效应。如果需要对切片边缘去块效应,可以考虑选择引入边缘切片。

最后,Kieran Kunhya也说明了子帧编码目前存在的问题。比如可以使用多线程来提高吞吐量,此外某些切片在编码还未结束就被引用等。这些问题有待进一步解决。

演讲PPT全文

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-25,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com