Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何使用MediaInfo将视频文件的帧速率和流计数信息转换为文本文件?_Windows_Batch File_Mediainfo - Fatal编程技术网

Windows 如何使用MediaInfo将视频文件的帧速率和流计数信息转换为文本文件?

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" 但是对于音频流的数量,它返回一个空文本,并且没有错误消息。我使用了完全相同的

在Windows7的命令提示符窗口中,从批处理文件中执行控制台命令时出现问题。我想得到视频的帧速率和音频流的数量,并将它们写入文本文件。对于帧速率,没有问题,我从批处理文件运行此命令:

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