长视频转码的正确姿势
暑假在老家呆着闲着看电视不管是综艺还是电影。不过用的是各种不知名的app看的主打一个海量免费问题是广告多画质在85吋的电视上惨不忍睹还经常卡。这种流媒体服务公司应该想办法提升自己的用户体验广告商在这里投放广告效果也不好啊。这里最核心的涉及到的视频技术是长视频转码。这个技术放在现在应该不是什么问题了hevc与av1都已经成熟av1的视频即使在老电视上用dav1d解码问题也不在话下。转码的资源也不用太多投入没有强大的服务器根本不是事。每年淘汰的手机这么多想想办法用手机主版搭一个转码集群电费也不高。下面讨论正事如何转码带宽低画质高转码效率也高。小投入大产出这是我们的做事原则。乐视当年每上一级45分钟的电视花24小时转码那都是土豪干的事。首先码率控制。码率控制是视频编码器的核心技术模块核心目标是在满足信道带宽、存储空间等约束的前提下平衡输出码率与视频编码质量避免码流溢出或带宽浪费。1.基本原理它通过动态调整‌量化参数QP‌和拉格朗日因子λ结合分级比特分配、缓冲机制实现码流稳定输出核心支撑模型包括R-λ模型、R-Q模型等。先按目标码率和视频复杂度为GOP、帧、编码单元逐层分配目标比特数再通过率失真优化计算对应QP让实际输出比特尽可能匹配预设目标2.主流控制模式模式特点与适用场景CBR恒定比特率全程输出码率稳定适合直播、传统广播电视场景VBR可变比特率随画面复杂度动态分配码率同等画质下可节省30%-50%带宽适配流媒体、离线存储场景ABR平均比特率保证长时段平均码率达标多用于自适应流媒体业务CRF恒定速率因子锁定编码质量水平优先保障主观观看体验3.技术演进H.264/AVC阶段形成成熟的JVT-H017、JVT-N046方案采用GOP/帧/基本单元三层R-Q模型完成码率控制HEVC阶段演进出URQ像素级控制模型、更贴合码率失真关系的R-λ模型控制精度大幅提升最新方向结合深度学习实现精准带宽预测开发超低延迟VBR算法适配AR/VR等实时交互场景4.典型优化手段2-pass编码先全量分析源视频复杂度再二次编码精准分配比特画质表现更优Lookahead预分析提前预判后续帧复杂度提前预留比特资源避免复杂帧画质骤降低延迟窗口控制用双窗口分别管控码率延迟与视频质量适配实时视频编码场景第二率失真包络。每个编码器即使是不同的编码参数每一个视频的在不同分辨率编码都会遵循类似如下的率失真包络图多分辨率编码率失真包络图引自“微帧”这个图AI画不出来网上找的。这个图每条曲线左上的点可以拟合成一个更大曲线使得每个分辨率的曲线与这个拟合曲线相切。那么这几个点就是不同分辨率下的清晰度编码甜点。第三、编码器preset与多线程编码如下以libx264为例说明libx264编码器的preset是一套预定义的编码参数集合核心作用是在‌编码速度‌和‌压缩效率‌之间做灵活权衡同等画质下选择速度越慢的preset最终生成的视频文件体积越小、压缩率越高反之速度越快的preset编码耗时越短但文件体积会明显更大。1.预设等级总览libx264一共提供10个按编码速度降序排列的预设档位默认值为mediumultrafast superfast veryfast faster fast medium slow slower veryslow placebo其中placebo属于极端优化档位相比veryslow仅能获得约1%的画质/压缩率提升编码耗时却会成倍增加实际生产环境几乎不会使用通常可以直接忽略。2.各档位特性与适用场景‌ultrafast‌编码速度接近文件直接复制几乎关闭了所有复杂优化逻辑生成的文件体积最大。适合实时屏幕录制、快速预览的临时编码场景比如1小时的演示视频仅需数分钟即可完成编码。‌superfast‌画质和压缩效率略优于ultrafast仍保留了极快的编码速度适合批量快速处理会议录像等对耗时敏感的场景。‌veryfast‌是直播推流遇到性能瓶颈时的常用应急档位在保证编码实时性的前提下能提供可接受的基础画质。‌faster / fast‌属于中等偏快的档位逐步开启更多运动估计、参考帧优化兼顾了速度和压缩率适合日常批量转码的通用场景。‌medium‌libx264的默认预设参数配置均衡在编码速度和画质压缩比之间取得了最普适的平衡绝大多数常规转码场景都可以直接使用该档位。‌slow / slower‌开启B帧双向预测、更精细的运动搜索等优化细节保留度显著提升压缩效率明显优于默认档位适合制作4K宣传片、高质量存档视频这类对画质要求较高的场景。‌veryslow‌是实用场景下最慢的预设会启用全部高级编码优化逻辑相比ultrafast最终生成的文件体积可缩小30%左右适合对文件体积敏感、不限制编码耗时的高质量母带存档场景。编码器默认线程数一般是cpu物理核心数的1.5倍。单线程一般比4线程的压缩率提高20%。第四、长视频编码器转码根据以上讨论我们要最后落地到文章开篇所提到的场景。如何快速找到每个视频每个分辨率编码的甜点。回答这个问题这前先要定下来我们的编码器策略。1.二次编码2pass的码率控制一般对比crf编码在同样的编码体积下画质能提升10%左右2.单线程刚才提到过单线程对默认线程数至少压缩率提升20%3.Preset的确定虽然是离线转码但是我们没有在为5%的压缩率去数倍的提高编码复杂度的必要。我们选定默认档medium之后的两档的preset:slower.4.快速找到编码甜点2015年前我们的业务以长视频为主至少2分钟以上那种。我们的办法1对每个视频进行gop全量分析2秒左右片段特征码率gop-qp. 进行二维逆变换采样取其中8个片段。2对每个片段做一次 scale:-1:360;preset:veryfast;crf:28转码。得到8个码率去掉最高的码率与最低码率取平均值。3对长视频重新分段。分段原则可以自己定义我们是如下每段视频不小于2分钟长视频最多分段数为104基于2所得码率进行换算到当前分辨率的码率对每段视频进行二次转码。采用2pass,单线程preset:slower转码。5分段转码视频音频的合并如果是多分辨阶梯转码可以共用一次转码。通过上述转码的原则我们比crf:23转码在同样清晰度下压缩率提升一倍左右。分段转码的启动任务可以根据本地的cpu核心数进行调度充分利用本地算力。当然这个方法更适合在服务器上做集群调度转码任务的粒度可控调度算法简单可靠可预知。最后可以接合现在的超分算法更进一步提升端侧清晰度这个需要对超分模型进行微调。我先找找15年的脚本找到了就分享给大家试用哈。

相关新闻

ADS8588S高精度ADC:转换期间读取与过采样模式实战解析

ADS8588S高精度ADC:转换期间读取与过采样模式实战解析

1. ADS8588S:为高精度多通道数据采集而生在工业自动化、电力监控或者精密测试测量领域,我们常常需要同时采集多路模拟信号,比如三相电网的电压电流、电机控制中的多路传感器反馈。这类应用对ADC(模数转换器)的要求非常…

2026/10/22 0:37:24 阅读更多 →
OpenCV实战:图像拼接、试卷判分与目标提取

OpenCV实战:图像拼接、试卷判分与目标提取

1. 项目概述:OpenCV实战三部曲计算机视觉早已不是实验室里的高深技术,而是渗透到我们日常开发的实用工具。最近半年我密集完成了三个典型的OpenCV实战项目:图像拼接、试卷自动判分和目标提取。这三个案例恰好覆盖了计算机视觉的三个核心应用方…

2026/10/22 13:16:59 阅读更多 →
计算机二级WPS演示文稿全攻略:从母版设计到动画设置

计算机二级WPS演示文稿全攻略:从母版设计到动画设置

在准备计算机二级 WPS Office 考试时,演示文稿部分往往是考生容易忽视却又占据重要分值的模块。很多考生把重点放在文字处理和表格处理上,但演示文稿操作题同样需要系统练习和细节把握。实际考试中,演示文稿题目不仅考察基本操作熟练度&#…

2026/10/20 12:18:00 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/22 10:18:38 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/22 11:01:53 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/22 9:44:47 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/22 10:42:00 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/22 10:40:08 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/22 10:56:37 阅读更多 →

日新闻

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/22 1:47:45 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/21 21:32:28 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/22 5:12:39 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:50:56 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:51:55 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 16:24:48 阅读更多 →