最近录了一些东方project弹幕游戏的视频,不太清楚怎么压好,我也找了一些资料,但好像试来试去也没有特别大的差别。各位有相关经验的话求指教。原片是60FPS的,无损RGB色彩。我用的是ffmpeg + x264-8bit,一般是使用-profile:v high -level 4.1 -pix_fmt yuv420p -preset veryslow,配合-crf控制码率,其他参数基本不改。上传B站,要求是码率不超过1.8Mbps。
一些具体的疑问:
1、-tune touhou 选项
[Codebox=]
else if( !strncasecmp( s, "touhou", 6 ) )
{
if( psy_tuning_used++ ) goto psy_failure;
param->i_frame_reference = param->i_frame_reference > 1 ? param->i_frame_reference*2 : 1;
param->i_deblocking_filter_alphac0 = -1;
param->i_deblocking_filter_beta = -1;
param->analyse.f_psy_trellis = 0.2;
param->rc.f_aq_strength = 1.3;
if( param->analyse.inter & X264_ANALYSE_PSUB16x16 )
param->analyse.inter |= X264_ANALYSE_PSUB8x8;
}
[/Codebox]
这个预置选项把aq-strength设置为1.3,是所有预置选项中最高的,deblocking设置为-1:-1,如果我理解的没错的话,这套参数倾向于把高速运动的弹幕部分的码率降下来,并尽量优化平滑区域的视觉效果。但弹幕游戏视频看得更多是弹幕啊,平滑的那些地方很清楚也不是很重要的感觉。是否用默认参数压制或者-tune animation / grain之类的更好?
2、crf和cqp
以我看到的资料来看crf更倾向分配更多的码率给静止区域,而cqp固定量化质量。同样的原因,如果倾向让人看弹幕看得更清楚的话,是否用cqp压制会更好一些?我用cqp压了几个,和crf相同码率的情况下,平滑区域的画质确实会差,但弹幕部分看起来好像只有很小的提升,而且不排除是我心理作用。
3、分辨率
更大的分辨率需要压的画质更差一些才能达到预定的码率要求,低分辨率则可以要求画质高一些,但如果不同分辨率的视频压制到相同的码率再放大到同样大小的全屏播放的话,哪种更好一些?
比较明显的差别是低分辨率会对比较细小的文字有比较大的影响,低分辨率即便是原片,有些字也不是很清楚。但高分辨率的视频,字确实很清楚,但看起来弹幕本身就是被拉抻过的,圆形的边缘会有比较明显的一块一块的。不过比较重要的还是弹幕本身。
4、是否有其他针对弹幕游戏视频的参数,效果特别明显的,可以调的?
5、是否应该更关注弹幕本身的质量?码率分配给高速弹幕是否值得?
回答问题提前感谢