神代綺凜

[bilibili] 教你如何压制B站1080P60帧不二压视频(已GG)
在几个月前,B站放宽了视频码率和帧率要求,并将其与大会员挂钩,但是作为UP主肯定还是要去照顾那些没有买大会员的观众...
扫描右侧二维码阅读全文
19
2018/04

[bilibili] 教你如何压制B站1080P60帧不二压视频(已GG)

在几个月前,B站放宽了视频码率和帧率要求,并将其与大会员挂钩,但是作为UP主肯定还是要去照顾那些没有买大会员的观众,这篇文章将会教你如何方便的压制不二压视频。

基于“小丸工具箱”,可以做到傻瓜式实现,但是要求对命令行相关知识有一点点了解,不要求压制程序的相关知识。

Head Pic: 苍之彼方的四重奏-有板真白
应该是gal的cg,所以没有原图链接

B站 1080P 60FPS 不二压

由于B站上线 DASH 技术,非大会员已经不能以60帧观看以此方法压制的视频,大家洗洗睡吧

准备

首先你需要一个小丸工具箱

已经写好的傻瓜式批处理脚本

这个 Windows 批处理脚本的适用压制情况:
编码器:x264_64-8bit.exe
音频模式:复制音频流
压制:2Pass保持原分辨率保持原帧率
.mp4进行压制,输出格式依然是.mp4

将以下代码复制下来粘贴到记事本中,修改前面的设置,然后保存成.bat批处理文件,然后将你要压制的视频(仅支持单个文件)直接拖到批处理文件即可自动压制

@echo off

::设置小丸工具箱目录,不要加末尾的斜杠,不要加双引号
SET MarukoToolbox=F:\Program Files\MarukoToolbox
::设置输出目录,不要加末尾的斜杠,不要加双引号
SET OutputDir=F:\output
::视频比特率(Kbps)
SET BitRate=2900
::压制线程数
SET Threads=8

::后续部分不需要动
SET fullpath=%1
SET filename=%~n1

::提取音频(复制音频流)
"%MarukoToolbox%\tools\ffmpeg.exe" -i %fullpath% -vn -sn -c:a copy -y -map 0:a:0 "%MarukoToolbox%\temp\%filename%_atemp.aac"
::VBR 第一次压制
"%MarukoToolbox%\tools\x264_64-8bit.exe" --pass 1 --bitrate %BitRate% --stats "%MarukoToolbox%\temp\%filename%_vtemp.stats" --threads %Threads% --preset 8  -I 600 -r 4 -b 3 --me umh -i 1 --scenecut 60 -f 1:1 --qcomp 0.5 --psy-rd 0.3:0 --aq-mode 2 --aq-strength 0.8 --level 4.1 --level-force -o NUL %fullpath%
::VBR 第二次压制
"%MarukoToolbox%\tools\x264_64-8bit.exe" --pass 2 --bitrate %BitRate% --stats "%MarukoToolbox%\temp\%filename%_vtemp.stats" --threads %Threads% --preset 8  -I 600 -r 4 -b 3 --me umh -i 1 --scenecut 60 -f 1:1 --qcomp 0.5 --psy-rd 0.3:0 --aq-mode 2 --aq-strength 0.8 --level 4.1 --level-force -o "%MarukoToolbox%\temp\%filename%_vtemp.mp4" %fullpath%
::合并视频与音频
"%MarukoToolbox%\tools\mp4box.exe" -add "%MarukoToolbox%\temp\%filename%_vtemp.mp4::trackID=1:name=" -add "%MarukoToolbox%\temp\%filename%_atemp.aac::trackID=1:name=" -new "%OutputDir%\%filename%_x264.mp4"

::清理临时文件
del "%MarukoToolbox%\temp\%filename%_atemp.aac"
del "%MarukoToolbox%\temp\%filename%_vtemp.stats"
del "%MarukoToolbox%\temp\%filename%_vtemp.stats.mbtree"
del "%MarukoToolbox%\temp\%filename%_vtemp.mp4"

pause

原理解释

其实这个压制命令完全是基于小丸工具箱的预置压制参数,只是在基础上加了--level 4.1 --level-force参数

清晰度 要求大会员 视频码率 音频码率 隐性要求
720P <=2000K <=192K level<=4.1
1080P <=3000K <=192K level<=4.1
1080P+ <=6000K <=320K
720P60 <=3000K <=320K
1080P60 <=6000K <=320K

还有其他条件例如色彩空间、声道之类的要求此处省略

以上条件仅仅依据官方给出的信息 + 本人实际经验 + 本人猜测,实际上肯定有漏洞,我见过8K30FPS的B站视频,level在6.0,码率20000K,清晰度在1080P档,而且UP主说甚至可以弄到最高144FPS,我不太了解这个是怎么做到的

至于144FPS据我所知在1080P60FPS档是可以的,不会被二压

回归正题,根据我多年的实验,不被二压的关键在于level<=4.1(想了解 level 参数你可以看这里

因为 1080P60FPS 的level=4.2,超过了二压线,因此会被二压,因此我们要做的仅仅只是让B站“认为”我们上传的视频的 level 只有4.1就好了,而且视频码率控制在3000K内,就不会被二压

在视频压制时加上--level 4.1 --level-force参数,可以让程序强制把 level 信息写成4.1,由于这个值并不是每次都通过后期计算得出的,而是视频文件信息中写死的,因此B站的视频转码机制并“不知道”我们偷改了这个信息

万用方法

如果你压制参数与我的傻瓜式批处理脚本不同,你也可以制作适合你自己用的批处理脚本

步骤:

  1. 使用小丸工具箱按照你需要的参数配置好,并进行一次压制(注意码率在3000K以内)
  2. 压制完成后不要关闭日志窗口,而是点击左下角的“导出日志”,导出成文件
  3. 查看日志文件,找到小丸工具箱调用过的命令,将它们按顺序复制出来
  4. 向视频压制相关命令中加入--level 4.1 --level-force参数
    不过可能并不是所有编码器都有这个参数,具体我并不了解,你可以自行在命令行中查看编码器的帮助信息
  5. 仿造懒人脚本中
    SET fullpath=%1
    SET filename=%~n1

    的相关使用,将你得到的命令写成一个.bat批处理,这样就能方便的对单个视频文件进行处理了

  6. 如果你了解 Windows 的 bat 批处理,你也可以自行改造成能应对多个文件或者目录的批处理(加点判断和for循环的事情,不过因为我自己没有需求所以不会给出示例)
我的文章对您有帮助吗?
我很可爱 请给我钱
扫一扫拿红包 → 扫商家收款码 → 转账与红包相等的金额
即可免费赞赏,又可拿支付宝奖励金!
现在支付宝超抠门的,红包只给一两分钱了
Last modification:October 23rd, 2018 at 12:46 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment

42 comments

  1. 朵朵朵朵朵丶  Windows 7(Windows 7) / Google Chrome 63.0.3239.132(Google Chrome 63.0.3239.132)

    如果是32位的系统要怎么改编码呢?

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)
      @朵朵朵朵朵丶

      x264_32-8bit.exe

      1. 朵朵朵朵朵丶  Mac OS X(Mac OS X) / Mozilla Compatible(Mozilla Compatible)
        @神代綺凜

        我改过试了,但是说什么系统找不到指定的文件啥的,跟楼下6月11号回复的情况一样……

        1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)
          @朵朵朵朵朵丶

          反正现在也没必要折腾这个了,这个方法已经没用了,具体看楼下

          1. 朵朵朵朵朵丶  Mac OS X(Mac OS X) / Mozilla Compatible(Mozilla Compatible)
            @神代綺凜

            好的,另外问个小白问题,我苹果录屏的mov文件,上传到电脑后是歪的,旋转了,我想问问怎么给纠正过来?用什么软件?不纠正的话我压制后传到b站上也是歪的

            1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)
              @朵朵朵朵朵丶

              最傻瓜式的话格式工厂就可以旋转

              1. 朵朵朵朵朵丶  Mac OS X(Mac OS X) / Mozilla Compatible(Mozilla Compatible)
                @神代綺凜

                好的谢谢

  2. Qutaybah  Windows 7 x64 Edition(Windows 7 x64 Edition) / Google Chrome 68.0.3440.75(Google Chrome 68.0.3440.75)

    谢谢博主的分享...8过9月好像破站已经完全取消非会员以黑科技上传60帧的福利了...换言之,只要是非会员上传的60帧视频就一定会被二压~囧|´・ω・)ノ

    1. Steven8888  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 55.0.2883.87(Google Chrome 55.0.2883.87)
      @Qutaybah

      二压仍然是可以避免的
      1、720P保证帧数超过30,可以24fps封装进50/60fps,实际目视效果为24,信息显示为50/60,码率不用在意,比如720p60 1500K上去之后720p60路是原档,720p30路是原码率输出的30fps版本
      我个人实测720p60 H5.2 1500K就是这样,level没掉4.0,表示没有二压
      2、视频最窄边超过720px,比如1366*768,就会被归入1080p档位享受非会员3000/会员6000的码率,3000K以下时保证帧数大于30,3000k以上时随意

    2. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.81(Google Chrome 69.0.3497.81)
      @Qutaybah

      这样的吗……

      1. Steven8888  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 55.0.2883.87(Google Chrome 55.0.2883.87)
        @神代綺凜

        对的上了DASH,zccicy之前发文说过,顺便常规1080/720P在扩增码率后,DASH上线之前都没有level限制了,实测5.1级都可以上
        非会员上传60fps没问题的,但自己看不了

        1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)
          @Steven8888

          原来如此,受教了

  3. kkoo  Windows 10 x64 Edition(Windows 10 x64 Edition) / Sogou Explorer(Sogou Explorer)

    怎么把字幕一起 压进去呢?

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
      @kkoo

      参考万用方法

  4. 博主勾勾没我大  Android 6.0(Android 6.0) / IBrowse r(IBrowse r)

    可不可以出个视频(´இ皿இ`)

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
      @博主勾勾没我大

      不可以(

      1. 博主勾勾没我大  Android 6.0(Android 6.0) / IBrowse r(IBrowse r)
        @神代綺凜

        过分

  5. 惠痴君  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)

    可惜我做MMD是直接把avi压制成mp4的

  6. zs00263  Windows 7 x64 Edition(Windows 7 x64 Edition) / Internet Explorer 11.0(Internet Explorer 11.0)

    点开就闪退了.. 设置MarukoToolbox=G:\xiaowan OutputDir=G:\ 这样的路径可以吗,还有别的参数需要更改吗?

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
      @zs00263

      将文件拖放至批处理文件上而不是直接打开
      说白了就是将文件路径作为第一个参数传入

      1. zs00263  Windows 7 x64 Edition(Windows 7 x64 Edition) / Internet Explorer 11.0(Internet Explorer 11.0)
        @神代綺凜

        找到原因了,没把前面序列数字删除,蠢哭了 蟹蟹大佬提供的方法ヾ(≧∇≦*)ゝ

        1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
      2. zs00263  Windows 7 x64 Edition(Windows 7 x64 Edition) / Internet Explorer 11.0(Internet Explorer 11.0)
        @神代綺凜

        说错了,拖入进去试过了。跳出命令框然后就消失了.. 可能是我系统问题?

  7. 桔梗  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 63.0.3239.26(Google Chrome 63.0.3239.26)

    官网下的2016/10/23小丸
    最后一段合并那里通过查看日志发现有几个代码有改动

    ::合并视频与音频
    "%MarukoToolbox%\tools\mp4box.exe" -add "%MarukoToolbox%\temp\%filename%_vtemp.mp4#trackID=1:name=" -add "%MarukoToolbox%\temp\%filename%_atemp.aac#trackID=1:name=" -new "%OutputDir%\%filename%_x264.mp4"

    有报错的朋友可以试一下

  8.   Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.84(Google Chrome 68.0.3440.84)

    博主你好,请问有压制后再偷改profile的办法吗?cpu渣用文中的bat压1080@60太慢了= =如果可以用nvenc压好再改就好了

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.75(Google Chrome 68.0.3440.75)
      @町

      压制后再改貌似要动用WinHex修改视频文件中MediaInfo内容,我曾经看过一篇讲这个的文章但是没收藏,你可以搜搜相关关键字找找

  9. Jim  Windows 10 x64 Edition(Windows 10 x64 Edition) / Internet Explorer 11.0(Internet Explorer 11.0)

    问下,“,修改前面的设置,”是什么意思,而且我复制到记事本上后还有中文{直接放进不影响吗},

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 67.0.3396.99(Google Chrome 67.0.3396.99)
      @Jim

      指的是这部分

      ::设置小丸工具箱目录,不要加末尾的斜杠,不要加双引号
      SET MarukoToolbox=F:\Program Files\MarukoToolbox
      ::设置输出目录,不要加末尾的斜杠,不要加双引号
      SET OutputDir=F:\output
      ::视频比特率(Kbps)
      SET BitRate=2900
      ::压制线程数
      SET Threads=8

      中文部分是注释,放进去没有影响

  10. REDHODD-  Windows 10 x64 Edition(Windows 10 x64 Edition) / Firefox 59.0(Firefox 59.0)

    试了几天这个方法,因为老是报错 一开始楼上有个问找不到文件的 是因为小丸文件夹里默认没有temp文件夹,然后自己创一个或者删掉路径里的temp可以解决 但是最后还是压制报错,所以我又测试了一圈,最后发现-level-force这个指令好像用不了,不加就正常,一加就自动停止,所以为啥博主你的这个指令能用啊,是我的小丸版本不对吗?

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 67.0.3396.99(Google Chrome 67.0.3396.99)
      @REDHODD-

      我的小丸是2016/10/23版,呃其他具体问题会出在哪我也不清楚,我自己是能用的……

  11. Artemis  GNU/Linux x64(GNU/Linux x64) / Google Chrome 67.0.3396.99(Google Chrome 67.0.3396.99)

    无意中搜b站投稿相关,来到这!这里的博客主题吼喜欢,各种酷炫效果,顶炸!除了萌化之外,在这里看文章真的有种如沐春风的惬意赶jio!必须说上两句.腻孩耶ヾ(≧∇≦*)ゝ而且颜文字还有悬停提示什么意思.真心不能够再赞了 最后一行为什么没有提示.(b站貌似就没这个功能)
    好希望可以跟博主学学技术.

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 67.0.3396.87(Google Chrome 67.0.3396.87)
      @Artemis

      这个表情系统是主题作者写的,并不是我啦~
      最后一行没提示貌似只是因为表情配置文件里没写而已(

  12. Tigrex  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 64.0.3282.140(Google Chrome 64.0.3282.140)

    不知道为什么出错了...
    先放一些感觉有可能是原因的语句吧?

    E:\Working place\MarukoToolbox\temp\E3 ORI_atemp.aac: No such file or directory

    以及...

    x264 [warning]: MB rate (489110) > level limit (245760)
    x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
    x264 [error]: ratecontrol_init: can't open stats file
    x264 [error]: x264_encoder_open failed

    x264 [info]: ended at Mon Jun 11 07:02:13 2018
    x264 [info]: encoding duration 424631:02:13
    x264 [error]: could not open output file `E:\Working place\MarukoToolbox\temp\E3 ORI_vtemp.mp4'
    [Importer] Unknown input file type for "E:\Working place\MarukoToolbox\temp\E3 ORI_vtemp.mp4"
    Error importing E:\Working place\MarukoToolbox\temp\E3 ORI_vtemp.mp4#trackID=1:name=: Requested URL is not valid or cannot be found
    系统找不到指定的文件。
    系统找不到指定的文件。
    系统找不到指定的文件。
    系统找不到指定的文件。

    不知道为什么会这样...

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 67.0.3396.87(Google Chrome 67.0.3396.87)
      @Tigrex

      你可以尝试自己先拉到小丸工具箱里转一次然后提取命令手动改
      (不好意思现在才回复……可能是当时看到一长串的评论就漏了

  13. 小萌羽  Windows 7 x64 Edition(Windows 7 x64 Edition) / Opera 53.0.2907.68(Opera 53.0.2907.68)

    8K高清怕不是有后台哦 ,以前按二压标准来操作过也被二压了就很难受有时候又不被二压

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 67.0.3396.79(Google Chrome 67.0.3396.79)
      @小萌羽

      一般都会压成比二压标准低50Kbps这样,以防误判

  14. 玹狸  Android 8.0.0(Android 8.0.0) / Firefox 60.0(Firefox 60.0)
    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 66.0.3359.181(Google Chrome 66.0.3359.181)
      @玹狸

      这种我也不清楚是如何做到直传不二压的,在写这篇文章之前我也查了很多资料,没有人发文透露过如何做到这种“已经不符合常理”的不二压,或许是有什么bug
      又或者我看过有一篇文章讲可以用WinHex之类的编辑器去手动更改压制出来的视频的MediaInfo来进行欺骗,不知道是否可行,但是这些视频(包括你给出的这个)的视频详细信息中确实可以看到是4K120fps而且码率超过6k,我也觉得很奇怪
      代码投稿指的是什么?

  15. Anubis  Android 8.0.0(Android 8.0.0) / IBrowse r(IBrowse r)

    咨询一下脚本压制的时候会不会因为CPU资源占用而影响压制后的视频帧率。因为我看压制时有显示fps,压制时干别的会降低显示的帧率,而且感觉压制后的帧率不如压制前,不知资源占用是否有影响。

    1. 神代綺凜  Mac OS X(Mac OS X) / Safari(Safari)
      @Anubis

      理论上不会,那个显示的帧率指的是处理速度而不是视频实际帧率

  16. blank_ws  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 66.0.3359.117(Google Chrome 66.0.3359.117)

    求8K30FPS的B站视频AV号OvO

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 65.0.3325.162(Google Chrome 65.0.3325.162)
      @blank_ws

      av21404115