短视频平台开发中视频编码如何解决延迟优化?
视频编码是短视频平台一个重要的部分,如果把整个流媒体比喻成一个物流系统,那么编解码就是其中配货和装货的过程,这个过程非常重要,它的速度和压缩比对物流系统的意义非常大,影响物流系统的整体速度和成本。
视频编码是短视频平台一个重要的部分,如果把整个流媒体比喻成一个物流系统,那么编解码就是其中配货和装货的过程,这个过程非常重要,它的速度和压缩比对物流系统的意义非常大,影响物流系统的整体速度和成本。同样,对流媒体传输来说,编码也非常重要,它的编码性能、编码速度和编码压缩比会直接影响整个流媒体传输的用户体验和传输成本。
视频编码的意义
原始视频数据存储空间大:一个 1080P 的 7 s 视频需要 817 MB;
原始视频数据传输占用带宽大:10 Mbps 的带宽传输上述 7 s 视频需要 11 分钟。
而经过 H.264 编码压缩之后,视频大小只有 708 k 、10 Mbps 的带宽仅仅需要 500 ms ,可以满足实时传输的需求,所以从视频采集传感器采集来的原始视频势必要经过视频编码。
1、确保 Codec 开启了最低延迟的设置。Codec 一般都会有低延迟优化的开关,对于 H.264 来说其效果尤其明显。很多人可能不知道 H.264 的解码器正常情况下会在显示之前缓存一定的视频帧,对于 QCIF 分辨率大小的视频(176 × 144)一般会缓存 16 帧,对于 720P 的视频则缓存 5 帧。对于第一帧的读取来说,这是一个很大的延迟。如果你的视频不是使用 H.264 来编码压缩的,确保没有使用到 B 帧,它对延迟也会有较大的影响,因为视频中 B 帧的解码依赖于前后的视频帧,会增加延迟。
2、编码器一般都会有码控造成的延迟,一般也叫做初始化延迟或者视频缓存检验器 VBV 的缓存大小,把它当成编码器和解码器比特流之间的缓存,在不影响视频质量的情况下可以将其设置得尽可能小也可以降低延迟。
3、如果是仅仅优化首开延迟,可以在视频帧间插入较多的关键帧,这样客户端收到视频流之后可以尽快解码。但如果需要优化传输过程中的累计延迟,尽可能少使用关键帧也就是 I 帧(GOP 变大),在保证同等视频质量的情况下,I 帧越多,码率越大,传输所需的网络带宽越多,也就意味着累计延迟可能越大。这个优化效果可能在秒级延迟的系统中不是很明显,但是在 100 ms 甚至更低延迟的系统中就会非常明显。同时,尽量使用 ACC-LC Codec 来编码音频,HE-ACC 或者 HE-ACC 2 虽然编码效率高,但是编码所需时间更长,而产生更大体积的音频造成的传输延迟对于视频流的传输来说影响更小。
4、不要使用视频 MJPEG 的视频压缩格式,至少使用不带 B 帧的 MPEG4 视频压缩格式(Simple profile),甚至最好使用 H.264 baseline profile(X264 还有一个「-tune zerolatency」的优化开关)。这样一个简单的优化可以降低延迟,因为它能够以更低的码率编码全帧率视频。
5、如果使用了 FFmpeg,降低「-probesize 」和「 -analyze duration」参数的值,这两个值用于视频帧信息监测和用于监测的时长,这两个值越大对编码延迟的影响越大,在直播场景下对于视频流来说 analyzeduration 参数甚至没有必要设定。
6、固定码率编码 CBR 可以一定程度上消除网络抖动影响,如果能够使用可变码率编码 VBR 可以节省一些不必要的网络带宽,降低一定的延迟。因此建议尽量使用 VBR 进行编码。
视频编码是短视频平台一个重要的部分,如果把整个流媒体比喻成一个物流系统,那么编解码就是其中配货和装货的过程,这个过程非常重要,它的速度和压缩比对物流系统的意义非常大,影响物流系统的整体速度和成本。同样,对流媒体传输来说,编码也非常重要,它的编码性能、编码速度和编码压缩比会直接影响整个流媒体传输的用户体验和传输成本。
视频编码的意义
原始视频数据存储空间大:一个 1080P 的 7 s 视频需要 817 MB;
原始视频数据传输占用带宽大:10 Mbps 的带宽传输上述 7 s 视频需要 11 分钟。
而经过 H.264 编码压缩之后,视频大小只有 708 k 、10 Mbps 的带宽仅仅需要 500 ms ,可以满足实时传输的需求,所以从视频采集传感器采集来的原始视频势必要经过视频编码。
1、确保 Codec 开启了最低延迟的设置。Codec 一般都会有低延迟优化的开关,对于 H.264 来说其效果尤其明显。很多人可能不知道 H.264 的解码器正常情况下会在显示之前缓存一定的视频帧,对于 QCIF 分辨率大小的视频(176 × 144)一般会缓存 16 帧,对于 720P 的视频则缓存 5 帧。对于第一帧的读取来说,这是一个很大的延迟。如果你的视频不是使用 H.264 来编码压缩的,确保没有使用到 B 帧,它对延迟也会有较大的影响,因为视频中 B 帧的解码依赖于前后的视频帧,会增加延迟。
2、编码器一般都会有码控造成的延迟,一般也叫做初始化延迟或者视频缓存检验器 VBV 的缓存大小,把它当成编码器和解码器比特流之间的缓存,在不影响视频质量的情况下可以将其设置得尽可能小也可以降低延迟。
3、如果是仅仅优化首开延迟,可以在视频帧间插入较多的关键帧,这样客户端收到视频流之后可以尽快解码。但如果需要优化传输过程中的累计延迟,尽可能少使用关键帧也就是 I 帧(GOP 变大),在保证同等视频质量的情况下,I 帧越多,码率越大,传输所需的网络带宽越多,也就意味着累计延迟可能越大。这个优化效果可能在秒级延迟的系统中不是很明显,但是在 100 ms 甚至更低延迟的系统中就会非常明显。同时,尽量使用 ACC-LC Codec 来编码音频,HE-ACC 或者 HE-ACC 2 虽然编码效率高,但是编码所需时间更长,而产生更大体积的音频造成的传输延迟对于视频流的传输来说影响更小。
4、不要使用视频 MJPEG 的视频压缩格式,至少使用不带 B 帧的 MPEG4 视频压缩格式(Simple profile),甚至最好使用 H.264 baseline profile(X264 还有一个「-tune zerolatency」的优化开关)。这样一个简单的优化可以降低延迟,因为它能够以更低的码率编码全帧率视频。
5、如果使用了 FFmpeg,降低「-probesize 」和「 -analyze duration」参数的值,这两个值用于视频帧信息监测和用于监测的时长,这两个值越大对编码延迟的影响越大,在直播场景下对于视频流来说 analyzeduration 参数甚至没有必要设定。
6、固定码率编码 CBR 可以一定程度上消除网络抖动影响,如果能够使用可变码率编码 VBR 可以节省一些不必要的网络带宽,降低一定的延迟。因此建议尽量使用 VBR 进行编码。
免责申明:本站所有资源收集于互联网,仅用于学习和研究,若用于违法,与本站无关。若有侵权,请联系客服删除。
相关文章
-
06-04最新营销型木门门业公司网站模板 铝合金门窗网站源码 织梦模板dede(带手机版)
-
06-04黑色背景 AI芯片科技/智能数码电子类网站源码织梦模板 [自适应手机端]
-
06-04最新仿拉勾网php源码百度网盘下载_thinkphp招聘网站源码
-
06-04微信支付宝免签支付系统/支付宝扫码转账/免签支付接口源码
-
06-042021最新护肤品化妆品商城网站源码 化妆品商城模板源码+支持微信商城分销+安装教程
-
06-032021新版ThinkPHP5盛大跑分平台源码免费下载 数据库打包
-
06-03PHP二开美化版站长技术导航网站源码
-
06-03天意代刷任务网站源码 V2.4运营版
-
06-03男神女神投票源码免费下载v5.4.11 带插件+安装说明+图片素材
相关评论
内容信息
发布 | 2020-09-23 09:24:51 |
浏览 | 480 次 |
分类 | 技术教程 |
Tags |
最新发表
热度:513
【KuImg_V5.0主题】wordpress多用途美女私房照图片主题源码修复版自适应手机端
热度:346
阿里云API轻量动态肺炎疫情网站源码
热度:502
【度小满金融UI】四月首发最新版仿度小满金融源码美化版
热度:499
【新版V8京淘唯拼抢单系统】20203月最新淘宝京东自动抢单系统 源码支持封装安卓苹果APP[ios+Android双端应用]
热度:538
【天龙八部单机服务端】2020沧笙踏歌新版桃花岛一键安装客户端[附安装搭建教程]
热度:323
【抖音去水印网站源码】PHP抖音在线去水印抖音无水印视频解析系统
热度:308
【植物大战僵尸2】最新修改版失落之城神秘埃及+无限钻石+电脑PC版
热度:487
【全新UI界面微星服务端】微星新UI代理价值6K完整源码,可自己替换下黑金版本[附视频安装搭建教程]
热度:531
最新app解析全网VIP视频源码 E4a全网影视源码带充值卡和网页后台功能
热度:309
【吉利扫雷红包源码】JAVA纯源码完整学习版带扫雷+牛牛+接龙+龙虎斗等多款游戏









