【发布时间】:2025-12-23 04:50:11
【问题描述】:
我只是想了解如何在代码中使用ffmpeg中的psnr过滤器。
我已经按照https://ffmpeg.org/ffmpeg-filters.html#psnr:
sprintf(args, "movie=ref_movie.avi [main];[main][ref] psnr=\"stats_file=stats.log\" [out]");
err = avfilter_graph_create_filter(&psnrCtx, psnrFilter, "psnr", args, NULL, m_filterGraph);
if ( err < 0 ) {
avfilter_graph_free(&m_filterGraph);
m_filterGraph = NULL;
return false; }
但是错误信息返回给我:
Option 'movie' not found
我也试试这个:
sprintf(args, "stats_file=stats.log");
err = avfilter_graph_create_filter(&psnrCtx, psnrFilter, "psnr", args, NULL, m_filterGraph);
if ( err < 0 ) {
avfilter_graph_free(&m_filterGraph);
m_filterGraph = NULL;
return false; }
err = avfilter_link(last_ctx, 0, psnrCtx, 0);
if ( err < 0 ) {
avfilter_graph_free(&m_filterGraph);
m_filterGraph = NULL;
return false;}
...
err = avfilter_graph_config(m_filterGraph, NULL);
if ( err < 0 ) {
avfilter_graph_free(&m_filterGraph);
m_filterGraph = NULL;
return false;
}
但错误信息返回给我:
Input pad "reference" with type video of the filter instance "psnr" of psnr not connected to any source
我在代码中搜索 psnr 过滤器,但没有太多关于它的信息。有人可以帮忙吗?
【问题讨论】: