Roo*_*ook 156 avi mpeg verification
这个标题可能有点误导,所以让我解释一下......
我正在下载视频文件... mpeg、avi - 是流行的格式之一。现在,如果我正在下载它,并且下载在 uhm ... 下载的中间中断,那么,例如,Windows Media Player 会给出一些错误并拒绝播放它(尽管文件是,让我们说, 98% 完成)。但是,像 KMPlayer 或 MediaPlayer Classic 这样的播放器会一直播放到那时(事实上,他们也可以在下载时播放)。
所以,我很感兴趣,...在不使用任何下载方式(下载管理器等)来确保文件完全下载的情况下,如何验证视频文件是否完整下载,以及是否完整?
whi*_*ark 182
您可以使用ffmpeg视频转换器中的一项功能:如果您将其指定为将视频重新编码为空,它只会读取输入文件并报告将出现的任何错误。这是非常快的过程,因为视频帧只是被读取、检查和静默丢弃。
示例命令行:(适用于 Linux)
ffmpeg -v error -i file.avi -f null - 2>error.log
Run Code Online (Sandbox Code Playgroud)
-v error意味着一定程度的冗长(显示一些通常隐藏的错误,因为它们不会对可玩性产生太大影响)。
您将获得一个完整的错误日志,其中包含有关 ffmpeg 将输出的文件的一些通用信息,因此这可能需要您注意,可以通过编写过滤器来执行对类似文件的批量检查。
FFmpeg 也可在此处用于 Windows 。除了 stderr 重定向外,命令行几乎相同:
ffmpeg.exe -v error -i file.avi -f null - >error.log 2>&1
Run Code Online (Sandbox Code Playgroud)
pfa*_*con 15
我喜欢ffmpeg -f null上面使用的想法,但实际上我想自动化使用该输出的过程。特别是,我的音乐视频收藏的常见情况是我有几个具有相同分辨率的剪辑,我想比较这些文件的验证日志以删除最坏的文件。
不幸的是,到目前为止,ffmpeg 还没有办法禁用其交互模式,这种模式会在这种使用情况下输出噪音。我最终破解了简单的包装脚本来进行过滤:
#!/usr/bin/env python
import sys
import os
import re
t = os.popen('ffmpeg -v 5 -i "%s" -f null - 2>&1' % sys.argv[1]).read()
t = re.sub(r"frame=.+?\r", "", t)
t = re.sub(r"\[(.+?) @ 0x.+?\]", "[\\1]", t)
print t
Run Code Online (Sandbox Code Playgroud)
示例输出:
[mpeg1video]ac-tex damaged at 21 17
[mpeg1video]Warning MVs not available
[mpeg1video]concealing 22 DC, 22 AC, 22 MV errors
[mpeg1video]Warning MVs not available
[mpeg1video]concealing 22 DC, 22 AC, 22 MV errors
[mpeg1video]ac-tex damaged at 13 9
Run Code Online (Sandbox Code Playgroud)
对于 Windows,您可以使用此 bat 文件“批量”检查当前文件夹和所有子文件夹中视频的完整性:
checkvideo.bat
@echo off
set "filtro=%1"
if [%filtro%]==[] (
set "filtro=*.mp4"
)
for /R %%a in (%filtro%) do call :doWork "%%a"
PAUSE
exit /B
:doWork
C:\ffmpeg\bin\ffmpeg.exe -v error -i %1 -f null - > "%~1.log" 2>&1
Run Code Online (Sandbox Code Playgroud)
用:
checkvideo.bat [filter]
如果你不给一个过滤器,将得到'*.mp4'。
样品:
checkvideo.bat
checkvideo.bat *.avi
设置:
从这里下载适用于 Windows 的 FFmpeg:https : //ffmpeg.zeranoe.com/builds/并解压它们 更改C:\ffmpeg\bin\bat 文件中您解压 ffmpegcheckvideo.bat的路径的路径 放入路径中包含的文件夹或将他的文件夹添加到路径环境变量
更新:截至 2020 年 9 月 18 日,上述链接不再有效,因此 Windows 用户可以在此处或此处下载 FFmpeg 表单
| 归档时间: |
|
| 查看次数: |
253787 次 |
| 最近记录: |