PS5 自带的录像功能导出的格式是WebM,同时视频是HDR默认60帧。我们有时需要转成其他格式保存。下面两个命令可以将其转成mkv或者mp4格式。
ffmpeg -i test.webm -vf zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p -c:v libx264 -crf 17 -preset slower test2.mkv
或者
ffmpeg -i test.webm -vf zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p -c:v libx264 -crf 17 -preset slower test2.mp4
这个转换的原理是把WebM容器内的HDR视频通过zscale滤波器转换成SDR的视频并且封装到mkv或者mp4的容器中。如果不使用滤波器映射色彩空间而直接转换的话,出来的视频会失色(color loss),效果是看上去灰蒙蒙的。
如果需要将视频从60帧转为30帧,可以加入 -r 命令如下
ffmpeg -i test.webm -vf zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p -c:v libx264 -crf 17 -preset slower -r 30 test2.mkv