头像
dgwxx
管理猿
帖子: 770
注册时间: 2010-09-19 20:42
联系: 网站

为泥扣泥扣动画量身压制H264格式的节目

2010-09-20 11:19

*为避免造成混淆,本文中涉及到网络用语“视频”全部用“节目”代替。本文中“视频”指代节目中组成画面的部分,与音频相对。


泥扣泥扣动画(nicovideo)大家都认识,它的一大特征就是,如果上传的节目符合某些条件,就可以不必被服务器端编码,而保持相对较高的音画质量(当然是非经济模式播放)。因为目前H264(AAC+AVC)已经日益成为主流格式,泥扣官方也主要推荐此格式,因此FLV4(VP6+MP3)格式不在本文叙述之列。
具体来说,由于泥扣有高级会员和一般会员之分,不只是播放时会产生差别(一般会员在高峰时段只能收看视频的低质量版本,既泥扣的“经济模式”),两种身份上传时的待遇也有很大差别。下面分别就两种身份如何争取到最大限度的音画质量进行一个简单的总结。

* * *
本文主要参考资料:
http://nicowiki.com/aviutl_h264.html
http://www.smilevideo.jp/static/www/help/
由于泥扣经常进行技术调整(放宽/收缩限制),因此本文只保证写作当时有效,不保证随时更新。因此内容仅供参考,最新资料以上面链接的泥扣大百科为准。
* * *

目前泥扣推荐的编码器
视频:x264(Baseline profile / Main profile)
音频:Nero AAC Codec
封装:MP4(MPEG-4 Part10 AVC)

视频规格
nico.png
  • 关于fps 1:目前没有在泥扣官方的介绍中看到fps的限制。目前可以考证的fps有:25fps、30fps、60fps。据笔者观察,泥扣动画上绝大部分视频是30fps。推测:15fps和24fps理论上也应该在支持之列。
  • 关于fps 2:目前泥扣服务器端有一个原因不明的bug,就是512*384@29.970fps的视频在服务器端生成经济模式版本的时候,会莫名地变成120fps,码率不变、fps上升4倍,画质会变得极端恶劣。
  • 关于fps 3:服务器端对vfr支持不好,请勿使用vfr。120fps也请尽量避免。请不要上传含有null帧的视频。
  • 关于“正在编码”:即使上传了符合条件的节目,依然显示“正在编码(エンコード中です…)”,这实际上是服务器正在预先生成经济模式播放用的视频(245kbps、FLV、VP6、QVGA),上传的节目本身并没有改变。
音频

AAC-LC(44.1kHz/48.0kHz・320kbps~88kbps推荐)
HE-AAC(44.1kHz/48.0kHz・80kbps~48kbps推荐)
HE-AACv2(44.1kHz/48.0kHz・40kbps~16kbps推荐)
*无音频的文件上传之后会强制重新编码,因此如果不需要音频信息,请插入一条空白的音频轨道。

考虑到用户体验
(此部分原创)
  • 视频:考虑到一般会员的码率限制,按照“基本分辨率”进行resize比较推荐。请勿浪费fps。推荐画面动态低的视频降低fps。此外,请不要浪费码率。考虑到泥扣动画的带宽消耗和用户的加载时间,在不必要的情况下,一般会员不要贴边使用656kbps、高级会员不要滥用无限码率。从头到尾只有一张静止图片的,视频部分码率可以压到5kbps,如果是动态极少的幻灯片式视频,码率可以压到30~50kbps左右。请根据具体情况指定最经济合适的码率。综上,在画面质量和码率
  • 音频:请根据具体音频特征决定码率和采样率。纯语音可以将采样率24kHz或22.05kHz,码率可以降低到32kbps甚至更低。
  • 不要忘记用户播放开销:泥扣wiki中指出,H264播放时CPU开销大于VP6。因此,建议尽量使用合理的fps和分辨率。
  • 在音频和视频间取得平衡:推荐依据节目类型调整码率分配方案。音频类节目可以侧重音频质量(48kHz+128kbps)。注重画面质量的节目可以依据情况消减音频码率,将码率转移到视频,提高视频质量。
x264参数设置参考
(来自AviUtl Plugin:拡張 x264 出力(GUI))
高速度(3pass)
--bitrate 512 --pass 3 --threads auto --aq-mode 0 --bframes 16 --psy-rd 0.0:0.0 --qpstep 16 --keyint 300 --min-keyint 1 --scenecut 54 --partitions p8x8,b8x8,i4x4 --direct spatial --me dia --cqm flat --subme 5 --trellis 0 --no-deblock --ref 2 --mixed-refs --weightb --no-fast-pskip

均衡(3pass)
--bitrate 512 --pass 3 --threads auto --aq-mode 2 --aq-strength 0.5 --bframes 16 --psy-rd 0.5:0.0 --qpstep 16 --keyint 300 --min-keyint 1 --scenecut 54 --partitions p8x8,b8x8,i4x4 --direct auto --me umh --merange 16 --cqm flat --subme 7 --trellis 1 --deblock -1:-1 --ref 3 --mixed-refs --weightb --no-fast-pskip

高画质(3pass)
--bitrate 512 --pass 3 --threads auto --aq-mode 2 --aq-strength 0.5 --bframes 3 --b-adapt 2 --psy-rd 0.5:0.0 --qpstep 16 --keyint 300 --min-keyint 1 --scenecut 54 --partitions p8x8,b8x8,i4x4 --direct auto --me umh --merange 32 --cqm flat --subme 9 --trellis 2 --deblock -1:-1 --ref 5 --mixed-refs --weightb --no-fast-pskip --no-dct-decimate"

超高画质、超低速度(3pass)
--bitrate 512 --pass 3 --threads auto --aq-mode 2 --aq-strength 0.5 --bframes 5 --b-adapt 2 --psy-rd 1.0:0.0 --qpstep 16 --keyint 300 --min-keyint 1 --scenecut 54 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --direct auto --me esa --merange 32 --cqm flat --subme 9 --trellis 2 --deblock -2:-2 --ref 8 --mixed-refs --weightb --no-fast-pskip --no-dct-decimate"
日常推 @dgwxx: 基本没什么技术的话题,欢迎没事看看消遣。
► 显示内容 平庸的rip
► 显示内容 “不知道”的五大理由

回到 “视频编码器 / Video encoder discussion”