[FFmpeg-trac] #10586(undetermined:new): Impossible to retrieve libvmaf result from filter graph in AVFrame
FFmpeg
trac at avcodec.org
Mon Sep 25 14:22:52 EEST 2023
#10586: Impossible to retrieve libvmaf result from filter graph in AVFrame
-------------------------------------+-------------------------------------
Reporter: ichlubna | Type: defect
Status: new | Priority: normal
Component: | Version: git-
undetermined | master
Keywords: libvmaf | Blocked By:
frame filter libav psnr |
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
There is no way to retrieve vmaf score from the resulting frame produced
at the end of the filter graph. The same approach which works for psnr and
ssim filters is not working.
When I use [https://ffmpeg.org/ffmpeg-filters.html#psnr psnr] or
[https://ffmpeg.org/ffmpeg-filters.html#psnr ssim] filter I can list the
result from the [https://ffmpeg.org/doxygen/4.1/structAVFrame.html frame]
read from the sink buffer of the filter graph which is stored in the
metadata [https://ffmpeg.org/doxygen/4.1/structAVDictionary.html
dictionary] as:
{{{
char *entries = nullptr;
av_dict_get_string(resultFrame->metadata, &entries, ',', '|');
std::cout << entries;
}}}
I use this filter:
{{{
const AVFilter *vmafFilter = avfilter_get_by_name("libvmaf");
}}}
The same cannot be used for [https://ffmpeg.org/ffmpeg-
filters.html#libvmaf libvmaf]. The metadata dictionary is empty. I
searched the whole frame structure and couldn't find the result anywhere.
Shouldn't this be unified?
I don't see the storing of the result in the frame anywhere in the
[https://github.com/FFmpeg/FFmpeg/blob/13a3e2a9b4697a1403d3e58eb5e8ef9c72561d54/libavfilter/vf_libvmaf.c
source code]. Storing to the frame is visible in the
[https://github.com/FFmpeg/FFmpeg/blob/13a3e2a9b4697a1403d3e58eb5e8ef9c72561d54/libavfilter/vf_psnr.c#L223
code of psnr] and
[https://github.com/FFmpeg/FFmpeg/blob/13a3e2a9b4697a1403d3e58eb5e8ef9c72561d54/libavfilter/vf_ssim.c#L388
code of ssim]. I think that the storing of the vmaf score is just missing
in the code.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10586>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list