转储损坏的视频文件列表和质量

转储损坏的视频文件列表和质量

很难找到解决方案。我有一个文件夹,里面有几千部电影,可能有 20-30 部损坏了。我试图找到一种方法来列出这些损坏的文件(而不是删除它们)。它们的名字很好,都位于一个目录中(/media/NS02/Movies/*)

我发现 XBMC 无法找到这些文件的质量信息,并尝试转储损坏文件的列表,但没有成功。我还尝试使用 mediainfo。我对这种方法特别感兴趣,因为我还想打印一份非 720P 视频列表(单独)。

视频文件是 MKV、MP4 和 avi。我并不特别担心获得 AVI 质量。我该如何实现这些?我更喜欢 CLI 方法。

答案1

我不确定损坏的视频文件的行为。我只会针对可能的行为给出建议。

这些文件根本就无法播放吗?或者播放过程中某处会崩溃吗?

如果是前者,您可以尝试mplayer -vo null -ao null一个文件,确保 mplayer 在前 2-3 秒内不会退出,然后终止 mplayer 并转到下一个。编写脚本应该很容易,并且播放 1000 部电影的时间不会超过一个小时。

如果是后者,那么又有两种可能性。

  1. mplayer 无法寻找到崩溃点以外的任何位置。
  2. mplayer 可以寻找到崩溃点以外的位置并顺利播放。

可以通过打开文件echo 'seek 95 1' | mplayer -vo null -ao null -slave并检查 mplayer 是否崩溃来处理情况 1。此命令仅打开文件并尝试搜索 95% 的时间位置。

情况 2 表示除了崩溃点之外,无法通过查看文件的任何点来检测崩溃。因此,唯一的解决方法是解码整个文件,然后查看解码是否在某个点失败。有比实时播放更快的解码文件的方法,但我仍然认为这个过程会持续几天甚至几个月。由您来决定在几千个文件中检测 20-30 个损坏文件是否真的值得付出这么多努力。

检测非 720p 的视频:

mplayer file.extn -frames 0 -vo null -ao null 2> /dev/null | grep VIDEO | awk '{ print $3 }'打印视频的分辨率。您可以使用它来生成所需的列表。

相关内容