Windows 如何使用MediaInfo将视频文件的帧速率和流计数信息转换为文本文件?
在Windows7的命令提示符窗口中,从批处理文件中执行控制台命令时出现问题。我想得到视频的帧速率和音频流的数量,并将它们写入文本文件。对于帧速率,没有问题,我从批处理文件运行此命令:Windows 如何使用MediaInfo将视频文件的帧速率和流计数信息转换为文本文件?,windows,batch-file,mediainfo,Windows,Batch File,Mediainfo,在Windows7的命令提示符窗口中,从批处理文件中执行控制台命令时出现问题。我想得到视频的帧速率和音频流的数量,并将它们写入文本文件。对于帧速率,没有问题,我从批处理文件运行此命令: for %%a in (C:\Documents) do ( echo. Mediainfo --Inform=Video;%%FrameRate%% %%a )>> "D:\TestFrame2.txt" 但是对于音频流的数量,它返回一个空文本,并且没有错误消息。我使用了完全相同的
for %%a in (C:\Documents) do (
echo.
Mediainfo --Inform=Video;%%FrameRate%% %%a
)>> "D:\TestFrame2.txt"
但是对于音频流的数量,它返回一个空文本,并且没有错误消息。我使用了完全相同的批处理文件,但我用音频
替换了视频
,用流计数
替换了帧率
我在运行Mediainfo--Help-information
时看到这些参数
还有许多其他选项,如Mediainfo--Inform=General;%%AudioCount%%
不起作用
我已经测试过用输出
替换通知
,没有变化。我还测试了在控制台窗口中直接使用这个命令,而不将结果重定向到文本文件中,这是一样的
没有获得写入文本文件的音频流数量的原因是什么?。
C:\Documents
是一个文件夹,您必须指定一个掩码,如*.
,*.txt
,我的视频-??.
或*.mp4
*.avi
视频AVI示例
(for %%a in (C:\Documents\*.avi) do (echo fake-command %%a)
)>_TestFrame2.txt
用于将其输出重定向到文件,并且不需要像程序那样枚举文件
- 列出不带文件名的帧速率:
pushd c:\documents "C:\Program Files (x86)\MediaInfo\MediaInfoCLI" --output=Video;%%FrameRate%%\r\n ^ *.mpg *.mp4 *.mkv *.avi *.m4a *.flac *.mp3 *.wav >"D:\TestFrame2.txt" popd
- 列出用
分隔的文件名和帧速率(注意,当它从多个MediaInfo部分获取信息时,需要一个模板文件)::
您可以使用
*
来处理所有文件,而不是显式文件类型列表。对于%%a(C:\Documents)中的%%a,请执行echo%%a
给出的C:\Documents
-仅此而已。这就是你想要的吗?仅供参考:这不是Ms Dos,而是Windows命令提示符。MS-DOS是一种操作系统,Windows 7也是。我真的很抱歉我的信息中出现了一个错误。对于我的命令,我不使用(C:\Documents),而是使用(C:\Documents*.mov)。感谢您的回复,我已经测试过了。在我的第一篇文章中,我忘了写(C:\Documents\*.avi)。所以它不起作用。对于帧速率,这是正常的,但与音频StreamCount和其他许多命令,它没有返回任何错误消息…感谢您的回应,但我有一个错误消息“访问被拒绝”。因此,我以管理员身份运行该文件,但我收到了相同的消息。如果我以管理员身份直接从命令提示符运行命令也是一样的。。这很奇怪,因为通常我拥有所有权限。@Babadi48,按照标准过程:删除/注释任何echo off
行,从命令提示符控制台执行批处理文件,并检查产生错误的命令。
pushd c:\documents
(
echo General;%%FileName%%%%FileExt%%:
echo Video;%%FrameRate%%\r\n
) >"%temp%\mediainfotemplate"
"C:\Program Files (x86)\MediaInfo\MediaInfoCLI" ^
--output="file://%temp%\mediainfotemplate" ^
*.mpg *.mp4 *.mkv *.avi *.m4a *.flac *.mp3 *.wav >"D:\TestFrame2.txt"
del "%temp%\mediainfotemplate"
popd