Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video X265.MKV编码结果与VLC比较_Video_Vlc_Hevc_Handbrake - Fatal编程技术网

Video X265.MKV编码结果与VLC比较

Video X265.MKV编码结果与VLC比较,video,vlc,hevc,handbrake,Video,Vlc,Hevc,Handbrake,是否可以打开VLC media player的两个实例,一个显示源视频文件,另一个显示编码的手刹结果。然后从每个播放器中提取帧,遍历每个像素值,求绝对差的和,最后除以帧高乘以宽度的和 差不多 v1 = new VLC("filename1.mkv"); v2 = new VLC("filename2.mkv"); long long F = 0; double S = 0; /* initialize the media players here to begin getting frames

是否可以打开VLC media player的两个实例,一个显示源视频文件,另一个显示编码的手刹结果。然后从每个播放器中提取帧,遍历每个像素值,求绝对差的和,最后除以帧高乘以宽度的和

差不多

v1 = new VLC("filename1.mkv");
v2 = new VLC("filename2.mkv");
long long F = 0;
double S = 0;

/* initialize the media players here to begin getting frames */

while (v1.HasNextFrame() && v2.HasNextFrame()) {
    img1 = v1.getFrame();
    img2 = v2.getFrame();

    int H = img2.getHeight();
    int W = img2.getWidth();
    int D = 0;

    for (int i = 0; i < H; i++) {
        for (int j = 0; j < W; j++) {
            D += Math.Abs(img1[i][j].pixelValue - img2[i][j].pixelValue);
        }
    }

    if (S == 0) {
        S = (D / (H * W) );
    } else {
        S = (S + (D / (H * W) ) / 2);
    }

    v1.getNextFrame();
    v2.getNextFrame();
    F++;
}
v1=新VLC(“filename1.mkv”);
v2=新VLC(“filename2.mkv”);
长F=0;
双S=0;
/*在此初始化媒体播放器以开始获取帧*/
而(v1.HasNextFrame()&&v2.HasNextFrame()){
img1=v1.getFrame();
img2=v2.getFrame();
int H=img2.getHeight();
int W=img2.getWidth();
int D=0;
对于(int i=0;i

最后,
S
应该有一个值,表示两个视频文件之间所有像素的平均差值。对吗?

您是否试图定义一个评估编码质量的指标?您听说过PSNR、SSIM等吗?使用ffmpeg将您的文件转换为YCbCr 4:2:0,然后使用PSNR、SSIM等进行比较(wikipedia是您的朋友)