游戏视频录制、H264压缩、码率设置、GPU加速、导出经验分享

0
130

这篇文章适合录播游戏视频和做视频课程的朋友。用WordPress做网站的朋友如果遇到了mp4视频压缩问题,也可以参考一些经验,主要是码率和清晰度还有mp4文件大小相关的经验,有一段补充放在文章末尾了。

游戏视频采集:

  1. 玩游戏的画面是最好的,称之为100%原片。
  2. 用MSI afterburner 录制游戏,采用MJPG编码,jpg压缩比例80%-95%,1080P分辨率,30帧,MKV格式封装。
  3. 这种采集画面的方式,不采用实时压缩H264,所以文件很大,录制1小时游戏占用空间32GB。3分钟视频1.8GB。
  4. 采集后的视频,峰值码率高达100M/秒以上。
  5. 采集时,视频文件存储物理硬盘与游戏所在物理硬盘分开,硬盘传输速度是瓶颈。

MKV文件压缩:

  1. 视频编辑之前需要把MKV文件压缩成MP4文件,MJPG编码变成H264编码,这种压缩软件很多,推荐使用Nvidia GPU压缩,或者intel压缩。
  2. 推荐XMedia Recode软件(Windows平台),德国的免费软件。以前还用过下面这两款,不过暂时放弃了,分别是:handebrake:免费开源软件。MediaCoder:国产付费软件。
  3. XMedia Recode压缩是选择“恒定码率”或者“可变码率”,20M码率。
  4. 不论是CPU还是GPU压缩,在这个环节速度不快,大约2X(2倍速),每秒60-80帧,看画面的复杂程度耳钉。这个环节是MJPG转H264。

视频编辑:

  1. Camtasia2018,这是一款付费软件。主要是视频拼接,加片头,加字幕用。
  2. 导出时选择MP4,也是H264的,选择6000码率(6M),这一步导出过程慢,依靠CPU计算。
  3. 导出视频播放时基本在6000-8000码率,码率峰值11MB。
  4. 这种视频很多网站可以直接用,比如B站要求最高6M码率,峰值码率不超过24M。

举个例子:

3分钟的原始视频MJPG的MKV文件1.8GB,两步转换后的6M码率的MP4文件大约110MB,压缩掉了94%,其实从玩游戏的画面到MKV文件已经有压缩了,帧率从60减到30帧,画面采用85%的压缩jpg。画面质量有缩水,而且缩水很严重。但是也不是很惨,大家可以脑补一下:

  1. 一部蓝光介质的电影是30GB,压缩成10GB的H264 MKV文件,压缩掉了2/3,平均码率10M,1080P, 清晰度已经很好了。
  2. 各大视频网站的超清1080P,一部电影文件2-4GB,2-4M码率,比上面的差,因为受到网络下载速度限制。
  3. 直播游戏,上传码率是1.6M-2M,仍然是受到网络速度限制。
  4. B站允许6M码率视频,是目前比较合理的方式。

另一种压缩方案:(可选)

  1. 视频编辑软件输出时,把码率调高,比如20M码率,输出一个大MP4。
  2. 再用XMedia Recode软件把20M码率的MP4文件,压缩成6M码率的MP4,这个过程利用GPU,速度很快。10X,每秒接近300帧。
  3. 大家看截图,CPU负担也很大,但不是100%,这里CPU负责解码,GPU负责编码,同时工作效率高,硬盘也不闲着。

经过数次压缩,画质损失不小。

  1. 从游戏画面到MJPG进行了一次有损压缩,损失15%。
  2. 从MJPG到H264 20M码率也是有损压缩,损失70%
  3. 视频编辑软件把20M码率的视频,有损压缩成6M码率,损失70%
  4. 3分钟的视频,从1.8G的文件,变成110MB,已经不错了。

补充一下WordPress网站用到的视频

  1. 1080p分辨率,文件大小控制在2MB,平均码率2M,如果是2M带宽的服务器,实际上下载速度250KB/秒,2MB的视频文件需要下载需要8秒,还不包括网站首页图片、css、js加载时间。
  2. 2M码率,2MB文件大小的视频的时间长度约:8秒。
  3. 2M码率,不算清晰,不推荐出现人物或者场景较大的画面。画面简单,播放速度慢可以尽可能减少视频文件大小。

关于视频压缩的经验分享到这里,再见

发表回复

请填写评论
请填写您的名字