我想将大量视频与一个好的参考视频进行比较,以便找到质量较差的视频.我想通过调用命令行实用程序以批处理模式执行此操作,我已经以这种方式使用ffmpeg来获取视频帧.
如果我对视频进行转码,ffmpg会给我一个PSNR值来比较输入和输出视频.我的印象是我可以使用这样的东西比较两个单独的视频,但找不到办法.
我会更好地从每个视频中抓取一个帧并以某种方式比较它们吗?PSNR对我来说可能不是最佳选择?
我不是在寻找质量上的微小差异,而是寻找同步问题或大量积雪等重大差异.
有什么建议?提前致谢 :-)
小智 22
我知道现在为时已晚,但我试图做同样的事情而无法找到方法.对于遇到相同问题的任何人,这是您使用ffmpeg中的psnr过滤器比较两个单独视频的方式:
ffmpeg -i input_video.mp4 -i reference_video.mp4 -filter_complex"psnr""output_video.mp4"
文档说input_video将不变地传递给output_video,psnr值将显示在命令行上.
.\..\ffmpeg -i [Input] -i [Output] -lavfi psnr="stats_file=psnr.log" -f null -
Run Code Online (Sandbox Code Playgroud)
我当时正在查看ssim命令(https://ffmpeg.org/ffmpeg-all.html#ssim),并决定尝试将其用于psnr命令,以查看是否可以获得任何有用的结果。对我来说似乎很有用。日志文件具有一个mse_avg值,我发现该值对于检测我生成的视频中的宏块很有用。
http://www.mathworks.com/help/vision/ref/psnr.html帮助我了解了mse和psnr的含义。
ffmpeg有一个psnr过滤器:
.. psnr VV->V Calculate the PSNR between two video streams.
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅https://trac.ffmpeg.org/wiki/FilteringGuide
| 归档时间: |
|
| 查看次数: |
21240 次 |
| 最近记录: |