gpt4 book ai didi

ffmpeg - 如何在使用 ffmpeg 计算 vmaf 分数时同步帧

转载 作者:行者123 更新时间:2023-12-04 23:12:34 25 4
gpt4 key购买 nike

我有一个源视频和该源的编码器版本。现在我需要找到 vmaf 分数。但是我读到,为了确保正确的 vmaf 分数,源视频和编码视频都保持帧同步是很重要的。你能告诉我如何在ffmpeg中使用解码流上的过滤器来做到这一点。我
我有如下命令

ffmpeg2 -i 11sec_encoded_720p_200k.mp4 -i 11sec_original_1080p.mxf -filter_complex "[0:v]scale=1920x1080:flags=bicubic[main]; [main][1:v]libvmaf=model_path=vmaf_v0.6.1.pkl:psnr=1:ssim=1:ms_ssim=1:log_fmt=json:log_path=720p_200k.json" -report -f null -

最佳答案

您可以使用 trim过滤器处理 <offset>在您的输入视频之间,我。例如,

  • 如果 11sec_encoded_720p_200k.mp4 的第一帧(失真)与 11sec_original_1080p.mxf 相比领先(引用),申请trim通过指定 <offset> 到引用值(value)。 <offset>应该是引用视频上的以秒为单位的值,其中它的帧与失真的第一帧匹配(见下图命令):
  • ffmpeg2 -i 11sec_encoded_720p_200k.mp4 -i 11sec_original_1080p.mxf -filter_complex "[0:v]scale=1920x1080:flags=bicubic[main];[1:v]trim=start=<you offset> [ref];[main][ref]libvmaf=model_path=vmaf_v0.6.1.pkl:psnr=1:ssim=1:ms_ssim=1:log_fmt=json:log_path=720p_200k.json" -report -f null -
    image1
  • 否则,如果 11sec_original_1080p.mxf (引用)在 11sec_encoded_720p_200k.mp4 方面领先(扭曲),申请trim到 Distorted(参见下面的命令图像):
  • ffmpeg2 -i 11sec_encoded_720p_200k.mp4 -i 11sec_original_1080p.mxf -filter_complex "[0:v]trim=start=<you offset> [main0];[main0]scale=1920x1080:flags=bicubic[main];[main][1:v]libvmaf=model_path=vmaf_v0.6.1.pkl:psnr=1:ssim=1:ms_ssim=1:log_fmt=json:log_path=720p_200k.json" -report -f null -
    enter image description here
    上面的例子认为你已经知道正确的偏移量,如果不是这样,你需要计算它。可以使用失真视频的样本并逐帧(向前和向后)滑动它来完成此计算,以查找关于 Reference 的最佳 PSNR .一旦找到最佳 PSNR,滑动的时间量就是使帧同步所需的偏移量。在这里,您可以找到已经处理此问题的 python 脚本: https://github.com/gdavila/easyVmaf

    关于ffmpeg - 如何在使用 ffmpeg 计算 vmaf 分数时同步帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62753638/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com