Gonlate概念论坛

 找回密码
 立即注册
查看: 661|回复: 0

请问怎么输出真正的“无损”视频?

[复制链接]

128

主题

9

回帖

565

积分

管理员

积分
565
发表于 2023-2-16 23:07:12 | 显示全部楼层 |阅读模式

很抱歉用了标题来吸引大家的注意,除了直接拷贝之外,我们没有任何办法让视频实现真正的无损。只能说,在一定程度上让压制出来的视频相似度可以尽可能的接近原视频。毕竟只要是压制,肯定是重新编码,如果不是重新编码,那我们只能叫重新封装。

问题来了,封装和压制的区别是什么?我们都知道视频的格式一般有MPG、MP4、MOV或者是MKV等格式,这些格式叫做封装格式,它们相当于一个容器,在这个容器里面包含了视频文件以及音频文件,甚至是字幕文件以及章节文件。在这个里面的视频文件,才是相对应的编码,比如说HAVC(H.264)编码,HEVC(H.265)编码。
640.png
无损视频在理论上是不存在的,但是我也知道大家口中所谓的无损则是输出前,输出后通过肉眼难以辨认二者的区别;这样的事情存不存在呢?答案是 Yes ;我们可以尽可能的和原视频相同,接近到你肉眼看不出来的区别。但是首先有一点就是,你的原视频一定是清晰的,切输出前输出后的参数(分辨率)一致。
简单的总结就是,我们的软件没有聪明到把你的源文件变得更清晰,虽然压制可以让画质更烂的一比但是做到没那么烂或者说看不出来;还是可以的。在我们日常的输出压制流程中,很多新手或者说不了解编码 压制的童鞋都会跟我说,请输出无损,请输出最高画质。
640 (1).png

其实你们的意思我明白,就是不想让画面有所损失;但是事实是我们没有任何办法让视频实现真正的无损;一定要咬文嚼字的话是这样的;下面对于视频的压制,输出小编给大家提供以下建议供大家参考:
1·视频文件的大小并不是越大,画质就会随着越高;只要码率满足画面所需要的大小,画质就完全没有问题;720P ,H.264编码,10秒钟的片段用1Gbps的码率和100Mbps的码率没区别。

2·视频分辨率越大,帧速率越高,画面内容越丰富 则需要更多的码率来支持;比方说,这部短片是一部武打片,镜头切换数量非常多,而且是10bit色彩深度(10.7亿色)画面中运用了非常多的色彩搭配,还是4K 120FPS的;那么在此情况下,我们就必须要用更高的码率来支持画面的细节渲染。
真正决定画质的是什么?
我们拿最常用的XAVC /H.264编码做案例

假设我现在要输出一个1080 23.976fps,长度为1小时30分钟的电影。我们要压制在3GB内。
1·Adobe Premiere Pro
640 (2).png

我们来看一下PR给出的编码设置菜单,性能,配置文件以及级别。相信很多人都没有在意过这个地方。下面来给大家详细讲讲;

①性能
640 (3).png

性能分为仅限软件和硬件加速,硬件加速就是我们常说的显卡GPU加速;可能是CUDA,也可能是openCL(这个和你的显卡品牌有关系)你的显卡决定你的系统是否支持硬件加速。在渲染压制的时候,会借用GPU的运算辅助输出压制从而使渲染速度变快,在相同的输出参数下,画质不如仅限软件(纯CPU压制);仅限软件也就是只使用GPU来压制视频,这样压制的视频的画质,会比调用了显卡输出的画质要好。这个质量的差别是马赛克色块、条带的多少,而不是清晰度的高低。
②配置文件
640 (4).png

配置文件分为:Base(基线) 主要(Main)高(High ) 高10(High+)
H.264 规定了三种不同的档次,每个档次支持一组特定的编码功能,并支持一类特定的应用。针对主流便携设备的Baseline、Main、High,到针对出版级的High10、High422、High444等,支持的特征逐渐增多,播放时对芯片的压力也越大,效率(画面效果)也自然越好。
(一)基本档次(BaseLine Profile):支持帧内和帧间编码,支持利用基于上下文的适应变长编码(CAVLC)主要应用:可视电话,会议电视,和无线通讯等实时视频通讯领域。
(二)主要档次(Main profile):支持隔行视频,采用B片的帧间编码和采用加权预测的帧间编码,支持利用基于上下文的自适应算术编码(CABAC)主要应用:数字广播电视和数字视频存储
(三)扩展档次(Profile X):支持流码间的有效切换,改进误码性能(数据分隔),不支持隔行视频和CABAC,该协议主要面向无线视频服务和移动流媒体,在这些应用中,由于无线信道带宽有限,存在多径干扰和各种干扰,错误发生几率比传统有线视频传输数据丢包率高很多,扩展层档次将把为基本档次设计的错误恢复功能提高到一个新的水平,提供更完善,更针对性的错误应藏方法。
那么为什么有时这么多选择呢 一步到位不好么?举个例子:Base级不可以使用双向预测,Main则可以使用双向预测。那么双向预测又带来什么好处呢?当然是同质量情况下码流的减少,省下不少带宽。画质提高  但是 输出速度慢了呀 鱼和熊掌不可兼得、
③级别
640 (5).png

级别不影响码率,但是对分辨率以及最大码率等有限制的。
640 (6).png

④比特率编码  VBR CBR 这都是个啥?
640 (7).png

通俗点来说就是码率,码率也有不同的方案;

什么叫做CBR呢?使用CBR编码时,比特率在流的进行过程中基本保持恒定并且接近目标比特率,始终处于由缓冲区大小确定的时间窗内。CBR编码的缺点在于编码内容的质量不稳定。因为内容的某些片段要比其他片段更难压缩,所以CBR流的某些部分质量就比其他部分差。此外,CBR编码会导致相邻流的质量不同。通常在较低比特率下,质量的变化会更加明显。
什么叫做VBR呢?使用VBR编码时,系统将自动为内容的简单部分分配较少的码率,从而留出足量的码率用于生成高质量的复杂部分(如打斗 粒子画面 类似爆炸 光线复杂的情况)。这意味着复杂性恒定的内容(例如固定背景的新闻联播)不会受益于VBR编码。对混合内容使用 VBR 编码时,在文件大小相同的条件下,VBR编码的输出结果要比CBR编码的输出结果质量好得多。在某些情况下,与CBR编码文件质量相同的VBR编码文件, 其大小可能只有前者的一半。

一次编码,两次编码又有啥意思?在使用VBR 1-pass时,会分析当前可能投入多少资源来压缩较恰当,以最终不超过指定容量限制为主。而VBR 2-pass,可称二次编码,第一次会先将影片头至尾做分析,判断指定的视频大小,可以在哪些片段使用较高或较低的码率,比如某些部份是静态则可使用低码率,某些复杂场景,变化大、画面也复杂,则需要高码率…最后依照第一次的计算分析结果来渲染第二次。这样会让画面在相同码率下马赛克和失真少一些。

我们回到刚才举的例子:
假设我现在要输出一个1080 23.976fps,长度为1小时30分钟的电影。压制为H264的3GB内,我应该如何选择,输出。首先,一小时30分钟相当于90分钟,3GB相当于3072MB ,平均值一下相当于电影每秒钟所占用的大小为:0.56MB ,换算为码率大约为:5Mbps公式如下:码率 ≈ 每秒占用的文件大小*8    (0.56MB*8≈5Mbps)

这个码率并不能算大,但是在1080 25P下,这点码率来保证画面质量还是足够的,因此,我们的LEVEL设置为4.1或者5.1都可以;不受约束。在编码方面,因用于渲染的电脑配置足够强大,所以我们选择更消耗时间的软件渲染;编码方式选择VBR-2次;设置目标比特率为5Mbps(这里是决定最终大小的),最大码率为30Mbps(这是一部科幻片 特效比较多,所以我选择设置更大的码率来解决)这能让我的画面在压制下保持最高画质。最终 我可能需要比较长的渲染输出时间来得到我想要的高画质。

再假设一个例子,一个10分钟 1080 P的短片,100P的序列,不去在乎大小,但是注重输出效率,没有帧速率流畅度要求。对画面质量也没有很高要求。我需要最快的输出速度,赶稿子出新闻。那么首先将帧速率改为25P,降低帧速率提高每一帧编码效率。将输出级别设置为Main 4.1,输出设置为硬件加速,VBR一次(2次是无法硬件加速的)那么这样输出的话,相比刚才的参数,渲染时间得到了极大的缩短。但是之前说了,画质可能也会接连受影响,那我们既然不在乎文件大小,那就把文件设置码率大一些好了,设置为15Mbps,1080P完全足够用了。
当然,如果你真的想输出高画质高压缩小容量的视频,pr明显不是一个很好的压制工具,我们可以挪步其他的压制工具 类似FFmpg,Handbrake等都是不错的选择。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Gonlate概念论坛 ( 京ICP备17014288号 )

GMT+8, 2024-11-20 19:30 , Processed in 0.092695 second(s), 23 queries .

Powered by ROMIYIMAGE

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表