当前位置:  开发笔记 > 运维 > 正文

使用ffmpeg快速检查目录中视频文件的完整性

如何解决《使用ffmpeg快速检查目录中视频文件的完整性》经验,为你挑选了2个好方法。

我正在拼命寻找一种方便的方法来检查特定目录中包含文件夹的.mp4文件的完整性..mp4文件和文件夹的名称都包含空格,特殊字符和数字.

我已经找到了一个正确的ffmpeg命令来快速识别一个损坏的.mp4文件,取自这里: ffmpeg -v error -i filename.mp4 -map 0:1 -f null - 2>error.log

如果创建的error.log包含一些条目,则该文件显然已损坏.相反的是一个空的error.log.

下一步是将此命令应用于文件夹及其子文件夹中的每个.mp4文件.一些指南,比如这里和这里,确实描述了如何递归地应用ffmpeg命令,但我的编码技巧有限,因此我找不到一种方法来组合这些命令来获得以下内容:

一种使用前面提到的ffmpeg命令测试文件夹内的所有.mp4文件的方法(应该创建.log文件),只有当视频文件确实包含错误(读取有一些内容)并且它应该继承破坏的名称时文件,以了解哪个文件已损坏.

使用Ubuntu Gnome 15.10.



1> Andrea Dusza..:

试试这个命令:

find . -name "*.mp4" -exec ffmpeg -v error -i "{}" -map 0:1 -f null - 2>error.log \;

find命令以递归方式查找当前目录中与给定模式相对应的所有文件:"*.mp4".在-exec您输入要为所有文件运行的命令之后."{}"替换当前文件的名称,其中引号允许文件名中的空格.命令必须结束\;.

编辑:

上面的代码只生成一个日志文件.要.log.mp4每个带有名称的文件创建单独的文件,可以{}再次使用该符号:

find . -name "*.mp4" -exec sh -c "ffmpeg -v error -i {} -map 0:1 -f null - 2>{}.log" \;



2> 小智..:

我最近遇到了同样的问题,但我认为有一个简单的黑客可以找出哪些文件被破坏了:

find -name "*.mp4" -exec sh -c "echo '{}' >> errors.log; ffmpeg -v error -i '{}' -map 0:1 -f null - 2>> errors.log" \;

这样,错误遵循文件名(和路径).


为了更好的格式化源代码`find.-name"*.mp4"-exec sh -c"echo'{}\t\c'>> errors.log; ffmpeg -v error -i'{}' - map 0:1 -f null - 2 >> errors.log; echo''>> errors.log"\;`
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有