检查视频文件的完整性

9gm1akwq  于 2022-11-04  发布在  Unix
关注(0)|答案(1)|浏览(230)

我有一个视频文件库。它们被移动,压缩,解压等等。
发生了这样的情况,一些文件只得到了部分传输/提取。这个问题通常只在实际观看视频时出现(iidoEe.,视频过早停止,这真的很烦人)。
是否有一种方法可以批量验证视频库的完整性?
受这个问题的启发,我想出了以下几点:
find . -regex ".*\.\(avi\|mkv\)" -exec ffmpeg -v error -i {} -f null - \;
这里的问题是,ffmpeg在打印错误消息时不包括文件名,这意味着我不知道批处理中的哪个文件是错误的。
长话短说:

是否有办法在ffmpeg错误消息中包含文件名?

ubof19bj

ubof19bj1#

只需捕获ffmpeg的输出,并在不为空的情况下使用适当的标题打印出来:

find . -regex ".*\.\(avi\|mkv\)" | while read f; do
  ffmpeg_out=$(ffmpeg -hide_banner -nostdin -v error -i "$f" -f null - 2>&1)
  [[ $ffmpeg_out ]] && echo -e "==> ERROR in $f\n${ffmpeg_out}"
done

我添加了几个ffmpeg选项以确保正常操作:

  • -hide_banner关闭正常的FFmpeg前同步码,这只是不必要的噪声
  • -nostdin告诉FFmpeg忽略任何(意外)键盘交互

相关问题