B站上传视频,要二压还是不二压 您所在的位置:网站首页 b站投稿1080p视频 B站上传视频,要二压还是不二压

B站上传视频,要二压还是不二压

2023-08-20 14:41| 来源: 网络整理| 查看: 265

目录:

前言

不二压标准

B站相关政策

判断视频是否被二压

如何实现不二压

直传与自压,怎么选择

后记

1.前言

本文编辑于2020年一月,有时效性,未来B站可能会改变相应政策

仅讨论视频流,暂不涉及音频流。B站判断是否需要二压时,视频流、音频流分别处理,互不影响

主要研究1080p视频

个人一般使用FFmpeg(命令行)压制

原视频直传与追求不二压,各有利弊,需根据实际情况选择

自压的目标是在有限的码率下让画质损失尽可能小,而不是仅仅满足B站的不二压标准

2.不二压标准

观众为大会员且已开启会员专属画质

1080P@30 码率: 3000~6000kbps,1080P@60 / 720P@60 码率: 0~6000kbps,峰值码率<24000kbps

最大关键帧间隔<10秒

分辨率最大1920x1080,帧率最大60帧

H.264编码,色彩空间 YUV420,位深 8bit,Level ≤ 5.2

取消勾选“添加水印”选项

其他

部分标准释义:

一、非大会员的普通用户看到的视频必是二压的,码率3000kbps以下,帧数30以下;up主上传的视频符合不二压标准+观众为大会员且已开启会员画质,满足这两项条件,即可观看不二压的视频。

二、码率大于6000kbps会被二压,没毛病;码率低于3000kbps的1080P@30视频,即使其他参数都满足要求,依然会被二压,有点坑。所以,要想不二压,1080P@30视频的选择范围只有3000~6000kbps。从我的角度看,码率低于3000也会被二压,令人心痛,许多类别的视频即使只给2500码率,画质也很不错,现在B站压了又压,宁可增加服务器成本,也要削弱普通用户体验。简而言之,开了大会员才能看不二压视频。

(以上两项标准都是B站为了卖大会员作出的选择,通过 降低普通用户的体验+提升会员用户体验,拉开两者的差距,凸显大会员的价值。人要吃饭,公司要发展,又不是慈善机构,毕竟上市公司,收入不能局限于手游和周边,而且B站没给视频插入广告,所以会员部分的收入肩负更大的责任。)

另外,峰值码率<24000kbps。一般情况下,不会超标,除非该视频某一小段动态程度很高,而其余大段偏静态,例如:B站开放6000码率之前,只有3000码率可用,游戏、MAD·AMV等需要较高码率才够看的视频,会采取“后黑”的方式,在视频尾部加一大段黑屏内容,来稀释码率。

三、关键帧间隔小于10秒。这个很重要,很多追求不二压的人就是栽在这个地方了。小丸工具箱的默认参数是“-i 1 -I infinite”,即最小关键帧间隔一帧,最大关键帧间隔无限大,这个默认参数一加,不管后面怎么搞,上传后基本都会被二压,除非你的视频时长小于10秒。小丸本身是一个非常棒的压制工具,集成x264、FFmpeg和MediaInfo,但是!小丸上一次更新是2016年10月,距今已经三年多了,集成的x264、FFmpeg版本较老,内置参数不符合B站标准,目前,官网已无法下载软件,基本确定小丸已死。

https://maruko.appinn.me/history.html

💛B站关于视频的重要政策是“2018年8月引入DASH技术”,因此2018年8月之前的有关二压的视频或文章,可能会有些错误,请勿盲目全信。

四、帧率最大60,没啥好说的,分辨率最大1920x1080指的是不被二压的最大分辨率,B站最高支持1080p视频,这个1080p指的是视频高度1080像素,宽度可以超过1920像素,实测宽度最高可达3240,即B站最高支持3240x1080,示例:av76434208?p=9 ,不过没啥意义,长宽比太大,带鱼中的带鱼;2560x1080倒是有实用价值,长宽比21:9,大部分电影都是这个比例,21:9的显示器也是有不少的,而且很多智能手机都偏长,挺适合。上传2560x1080的视频会被二压,建议直接上传极高码率的视频,自己不压了,全交给B站压。

3.B站相关政策

2018年3月,开放60帧、6000kbps

2018年8月,引入DASH技术,同时修复非大会员也能看60帧的Bug

🔆这次的政策变动最为关键重要,影响至今,后面除了一个“上传视频大小限制扩大到8GB”之外,就没有大的变动了。

DASH相关文章:

https://zhuanlan.zhihu.com/p/41728454

引入DASH之后,被二压的视频有一个明显特征,关键帧间隔固定为5秒。

18年3月以前,B站最高支持1080p@30,码率3000kbps,只要up上传的视频符合二压标准,谁都可以看不二压视频;

18年3月至8月,B站公测1080p@60,码率6000kbps,非大会员普通用户可看1080p@60,3000kbps 以下的不二压视频;

18年8月至今,非大会员普通用户仅可看1080p@30,3000kbps以下,被二压的视频。

关于B站的会员结构组成,可参考此视频:

会员等级分布大会员占比=2.54%

虽然大会员占比只有2.54%,平均50个B站用户只有一个是大会员,但是这部分人属于核心用户,对于B站而言重要性远大于2.54%,地位仅次于广大up主。

4.判断视频是否被二压

方法一、视频区域右键>视频统计信息

AV76434208?p=3

上图红框中的 “avc1.64002A” 可用于判断是否被二压,关键字 2A(十六进制)=42(十进制)=Level 4.2 ,Level与视频本身一致,故未被二压

还有其他数值:

“avc1.640028” “avc1.640029” “avc1.640032” “avc1.640033” “avc1.640833” “avc1.640034”

这些也是未被二压的特征。

此数值受多种参数影响,以上列出并非全部。

AV76434208?p=1

“avc1.64001E” 1E(十六进制)=30(十进制)=Level 3.0 ,被二压了,因为 Level 3.0 最高仅支持720x576@25,而此视频是1920x1080@60,当然它的Level实际上是 4.2

有 “avc1.64001E” 的,都是经过B站二压的。B站首页随便抓一个1080p的视频,右键>统计信息,几乎都是“avc1.64001E” 。

💛尾号为1E,皆被二压。

关于Level,参见:https://en.wikipedia.org/wiki/Advanced_Video_Coding#Levels 

方法二、下载视频>检查MediaInfo

下载B站视频方法很多,此处仅列出个人所用。

油猴脚本 https://greasyfork.org/zh-CN/scripts/372516-bilibili-merged-flv-mp4-ass-enhance

或者用 IDM(Internet Download Manager)视频右上角会出现一个小按钮,bilibili、YouTube都适用

下载完视频之后,查看MediaInfo,此处下载 https://mediaarea.net/MediaInfo ;也可用 PotPlayer 查看MediaInfo,右键>属性>文件信息

AV76434208?p=3 (未被二压)AV76434208?p=1 (被二压)

💛MediaInfo 中有 “BiliBili H264 Encoder” ,即可视为被二压。

5.如何实现不二压

个人主要使用FFmpeg压制,FFmpeg是一个非常棒的工具,主要用于音视频的解码编码,功能繁多,内置H.264库,更新较快,社区活跃,项目一直有人维护。(如:下图Gif仅由FFmpeg制成)

下载FFmpeg:https://ffmpeg.zeranoe.com/builds/

解压,将其中的 ffmpeg.exe、ffprobe.exe、ffplay.exe 移动到 C:\WINDOWS\system32

Win+R,输入CMD,打开命令提示符,输入ffmpeg,回车有正常反应即可

地址栏输入CMD定位到目标文件夹

要想压得好,就两套方案:CRF 或 2pass

CRF是x264中最优秀的码率控制方案,取值范围0~51,数值越小,画质损失越小,相应的码率越高。默认值23,画质属良好水平;17、18左右可视为肉眼无损,通常取值17~28,数值+6,码率变为大约原来的一半。不同类别的1080p@60视频用同一个CRF,结果出来的码率差异很大,有的可能只有1000kbps,有的可以达到20Mbps,画面越复杂,动态程度越高,需要的码率也就越高。当你不知道该给视频多少码率时,可以用CRF=18,看看肉眼无损的码率是多少。CRF唯一的缺点是基本无法预估生成文件的码率。

2pass也是相当优秀的方案。它要跑2遍,花费时间略大于CRF,第一遍根据给定的参数和目标码率(例如5800kbps)分析文件,以合理分配码率,速度较快;第二遍真正开始压制,速度较慢。故,2pass的优点是可以精确控制码率。但是,比如说某个视频,固定机位,画面里就up主全程balabala,它只需要3000kbps,画质即可达到优良,如果压到5800kbps,不仅浪费码率,还增加用户的网络负担,增加B站的服务器和带宽成本。

CRF与2pass各有利弊,要制作不二压视频的话,还是优先选择2pass以精确控制码率,3000~6000的范围还是比较窄的,用CRF的话,不太好控制码率。

FFmpeg用于B站的不二压视频命令示例(CRF):

ffmpeg -i INPUT.mp4 -crf 18 -preset 6 -tune film -r 60 -s 1920x1080 -pix_fmt yuv420p -profile:v high -level 4.2 -g 590 -keyint_min 1 -maxrate 22M -bufsize 44M OUTPUT.mp4

参数简明释义:

-i INPUT.mp4  --输入目标视频文件

-crf 18             --设定压缩质量,默认23

-preset 6         --设定压制精度,取值0~8,数值越大,加工精度越高,花费时间越久,默认5

-tune film        --根据视频类型微调其他参数,有film、animation、stillimage等

-r 60               --设定帧率

-s 1920x1080 --设定分辨率

-pix_fmt yuv420p  --设定色彩空间

-profile:v high  --设定配置文件,有main、high、high10等,取 high 即可

-level 4.2        --设定Level级别,Level越高,支持的分辨率和帧率越大,同时对播放设备的解码能力要求越高,若Level太高,播放时部分设备可能会卡顿。对于1080p视频,30fps及以下建议取 4.0 或 4.1,30~60fps建议取 4.2

-g 590            --设定最大关键帧间隔,B站要求< 10秒,故取帧率的10倍,再减10以防万一。一般取帧率的5倍,对拉进度条更加友好,压出来的码率相比10倍差距很小,B站二压也是取的5秒一个关键帧

-keyint_min 1 --设定最小关键帧间隔,取 1 即可,分配关键帧更加从容

-maxrate 22M -bufsize 44M  --设定峰值码率为22Mbps

OUTPUT.mp4   --输出文件

2pass版本大同小异:

ffmpeg -y -i INPUT.mp4 -pass 1 -b:v 5800k -preset 6 -tune film -r 60 -s 1920x1080 -pix_fmt yuv420p -profile:v high -level 4.2 -g 590 -keyint_min 1 -maxrate 22M -bufsize 44M -f mp4 nul

ffmpeg -y -i INPUT.mp4 -pass 2 -b:v 5800k -preset 6 -tune film -r 60 -s 1920x1080 -pix_fmt yuv420p -profile:v high -level 4.2 -g 590 -keyint_min 1 -maxrate 22M -bufsize 44M OUTPUT.mp4

🔆压制参数这部分我没有详细讲,懂得自然懂,不懂得其实也没必要深究,具体看下文。

6.直传与自压,怎么选择

现如今,追求不二压的意义已不是很大,原因如下:

B站服务器的压制效果还算可以,并不是不堪入目的水准,BiliBili的学习榜样YouTube压制出来的画质才真的是不堪入目,下文有对比图

根据 AV64164012 的数据,大会员用户仅占2.54%,就算它5%好了,普通用户95%,只有5%的B站用户能有机会看到不被二压的视频,95%看的都是3000kbps以下经过二压的。既然在3000kbps档位,必被二压,秉着压制次数尽可能少的原则,选择原视频直传或上传极高码率(25Mbps以上)的视频,全交给B站压制,画质相比自压的版本更好一点,因为压制次数从2次减少到了1次

提升画质并不是只有自压一条路可走。将时间和精力放在以下方面显然更好:选用高清素材,降低视频动态程度,多一些静态内容,用好的拍摄设备,专业的拍摄手法;尽可能减少压制次数,视频每一次重编码都不可避免会损失画质(除非无损转换,生成的文件极大,几十到几百GB),最亏的就是自压了个5900kbps视频,上传到B站,不合标准被二压,压了又压,画质损了又损

自压说到底是为了提升相同码率下的画质,就要用到FFmpeg、x264、HanBrake等专门的压制工具,就不可避免地要了解各种参数(如:cabac=1 / ref=4 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=10 / psy=1 / psy_rd=0.80:0.05 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=12 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=4 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=590 / keyint_min=1 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=crf / mbtree=1 / crf=28.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=22000 / vbv_bufsize=40000 / crf_max=0.0 / nal_hrd=none / filler=0 / ip_ratio=1.40 / aq=1:1.00)茫茫多的参数对小白非常不友好,学习成本过高,我研究了几个礼拜,也不敢说学到了九牛一毛沧海一粟,等一下!其实上面这大一段参数是用来唬人的,没必要全都弄明白,例如HandBrake是图形化界面,参数也不多,还算友好,但是!新手如果没有视频相关知识,却想要不二压的话,往往会踩到莫名其妙的坑,结果就是上传了自己精心压制的视频,还是被二压了,想半天也没搞明白问题出在哪儿,亏得一B。编码参数这玩意儿很复杂,需要具体情况具体分析,要么不学,要学就得花很多时间和精力。(Premiere当然也能导出符合不二压标准的视频,但 Pr 的主业是剪辑不是压制,导出来的质量着实不咋滴,人家都说了是导出媒体不是压制视频啦!)

6000kbps档位:自压 VS 原视频直传B站 VS 原视频直传YouTube

画质:左>中>>>右

3000kbps档位:自压 VS 原视频直传B站

画质:左


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有