在 Windows 7 中使用 ffmpeg.exe 验证视频文件的正确选项是什么?

在 Windows 7 中使用 ffmpeg.exe 验证视频文件的正确选项是什么?

我有数千个视频文件需要检查/验证是否有错误或警告。一家公司刚刚将它们数字化,覆盖在旧磁带上(VHS、Umatic……)所有这些视频都是 mp4 格式,我想用软件自动检查它们。经过一番搜索,我找到了这个网站(http://videofilechecker.com/),但是该软件没有试用版,所以我无法用我的视频文件测试它。然后我看到该软件正在使用 ffmpeg 来验证所有这些视频。在第二次搜索中,我在超级用户中找到了这个问题。(如何检查视频文件(avi、mpeg、mp4……)的完整性?)。

这个问题的答案是:

ffmpeg.exe -v 5 -i file.avi -f null - >error.log

我检查了 error.log,它完全是空的(可能视频中没有错误)

但是我研究了 ffmpeg 的文档并发现了一些其他的东西,例如:

ffmpeg.exe -v error -i file.mp4 -f null - >error.log

但后来我收到一个错误:

Unknown input format: null
Failed to set value 'null' for option 'f': Error number -22 occurred

如果我尝试,-v 5没有任何错误,但在文档它写成-v error

由于我对视频验证的了解有限,我不太确定应该使用 ffmpeg 的哪些选项来验证所有这些文件。此外,我的下一个问题是在 Windows 中编写一个批处理脚本,它将逐个检查所有文件,如果有错误,它会将其写入带有文件名的日志文件中。有人有任何软件想法或脚本来验证这些视频吗?

答案1

这就是我正在使用的:

./ffmpeg.exe -v debug -threads 8 -nostats -i "path/to/file.ts" -f null - >~/error.log 2>&1

或者:

./ffmpeg.exe -v debug -threads 8 -nostats -i "path/to/file.ts" -f null - 2>~/error.log

第二个仅将 stderr 重定向到文件,而第一个将 stderr 和 stdout 都重定向。

该选项-v debug将打印所有错误、警告和调试信息,因此在比较两个视频文件时可能会很有用(例如,查看哪个文件的错误较少)。要限制报告的内容,请根据 ffmpeg 文档使用其他级别:

https://www.ffmpeg.org/ffmpeg.html

查找选项:-loglevel [repeat+]loglevel | -v [repeat+]loglevel。其他级别是quietpanicfatalerrorwarninginfoverbosedebug

相关内容