首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MediaInfo CLI (命令行接口)语法教我一劳永逸

MediaInfo CLI (命令行接口)语法教我一劳永逸
EN

Stack Overflow用户
提问于 2016-12-19 22:27:05
回答 3查看 23.9K关注 0票数 12

亲爱的Stack的朋友们,这里有一种我在很多类别中注意到的提问模式,但为了这个主题,我将讨论MediaInfo CLI。同样的问题不断重复发生,因为来源问题没有得到解决,那就是教人们如何捕鱼,而不是给他们喂鱼。

有些人问:“我不知道如何只从BitRate获得MediaInfo”。他们受到尊重,回答他们的高级用户也受到尊重。其他人对FrameRate、持续时间和解决方案也提出同样的问题.我尊重他们,也尊重回答他们的人。

但是,我真的很抱歉这个过程是多余的。不幸的是,MediaInfo网站文档没有说明如何在CLI版本中正确地使用MediaInfo.exe来提取特定信息,而--信息参数只是列出了许多参数,而没有说明如何使用它们。

因此,为了使用MediaInfo.exe CLI提取视频的特定信息,我只需在这里询问一下,因为我无法自己自定义参数,因为文档中没有语法。我本可以简单地问你我需要从视频中提取什么样的信息,但是如果每个不知道语法的人都会回来问多余的问题。

相反,我决定多花一点时间写这些文章,希望你能帮助我和其他人来寻找这个关于如何使用MediaInfo CLI -信息-参数语法的具体问题,这样每个定制查询都不会重复答案。

我真的想了解如何使用它,而不仅仅是复制粘贴已准备好的单行答案,我将收到。

首先,我要提到我所知道的,任何新的问询者都可以从我所知甚少的信息中吸取教训,然后我恳请你教我如何编写正确的MediaInfo -信息参数语法来提取特定的视频信息。

  1. 下载MediaInfo后,解压压缩文件并放到桌面上。
  2. RUN + CMD
  3. 导航到桌面上的MediaInfo文件夹。
  4. 将一些视频文件放在MediaInfo文件夹中。
  5. 在终端上运行以下命令: MediaInfo.exe --帮助>Help.txt MediaInfo.exe --信息-参数>Info_Parameters.txt

现在,您有一些帮助文件来搜索所需的信息。这个简单文档的其余部分取决于我的同事StackOverflow成员的慷慨。

要更清楚地了解我的问题,一劳永逸地:如何为MediaInfo.exe CLI编写适当的语法以提取特定信息,如FrameRate、工期和解决方案?我需要更多地理解语法,而不是现成的解决方案,以便以后能够定制它。

谢谢您抽时间见我!

EN

回答 3

Stack Overflow用户

发布于 2019-07-13 14:14:04

当您运行mediainfo --Info-Parameters时,您会注意到有七个部分:普通、视频、音频、文本、其他、图像和菜单。每个部分都包含许多不同的参数,这些参数包含有关文件的各种信息,并使用--Output=SectionName;%Parameter%格式进行调用。您可以从同一节名中选择多个参数,将它们与您喜欢的任何文本分隔开来(包括\n表示换行符(有趣的是,选项卡不是\t )),如--Output=SectionName;%Parameter1%\n%Parameter2%

您还可以添加您自己的文本,无论您如何编写它,文本都会显示出来,这样您就可以为输出贴上标签,以便以后更容易阅读。例如,要获取文件名、持续时间和文件大小,可以使用命令mediainfo --Output="General;File Name: %FileName%\r\nDuration: %Duration/String3%\r\nSize: %FileSize/String%" video.mkv

如果您想从多个部分获取数据(比如向上面的信息添加视频维度),则必须使用模板,因为无法从同一个--Output命令中的多个部分获取数据,并且让多个--Output实例相互取消,直到列表中的最后一个被删除。在模板中,每一行指定一个节,并将参数添加到它们各自的节中,如下所示:

代码语言:javascript
运行
复制
General;File Name: %FileName%\r\nOverall Bit Rate: %OverallBitRate/String%\r\nDuration: %Duration/String3%\r\nFormat: .%FileExtension%\r\nSize: %FileSize/String%\r\n
Video;Dimensions: %Width%x%Height%\r\n

这些参数将按照模板中写入的顺序显示,您不能在各部分之间来回切换(在本例中,我无法在视频部分之后添加更多的通用参数)。若要调用模板,请使用语法mediainfo --Output=file://template.txt video.mkvmediainfo --Output=file://C:\full\path\to\the\template.txt video.mkv

票数 12
EN

Stack Overflow用户

发布于 2020-05-09 10:42:55

在命令行中也可以这样做:

代码语言:javascript
运行
复制
mediainfo --Output=$'General;File Name: %FileName%\\r\\nOverall Bit Rate: %OverallBitRate/String%\\r\\nDuration: %Duration/String3%\\r\\nFormat: .%FileExtension%\\r\\nSize: %FileSize/String%\nVideo;\\r\\nDimensions: %Width%x%Height%\\r\\n' input.file

注意各节之间的"\n“

在Ubuntu18.04 MediaInfo命令行,MediaInfoLib - v17.12上进行测试

票数 8
EN

Stack Overflow用户

发布于 2021-06-03 19:46:10

最近,我遇到了一个名为jq的命令行工具。此工具使用筛选器来操作json数据,就像查询数据库时一样。

在我看来,这个工具可能是输出JSON的mediainfo功能的完美伴侣。

当然,mediainfo参数很难使用,但我们大多数人都知道如何处理json。最好花时间学习jq的过滤语言,而不是破译神秘的mediainfo参数选项;)

工作流或多或少是这样的。

  • 知道你想从媒体文件中提取什么信息。
  • 使用jq及其过滤器来提取它。

命令

在格式化良好的json中查看媒体文件的所有信息

#> mediainfo --output=JSON myVideo.mp4 | jq .

自定义jq过滤器以获得所需的结果。

#> mediainfo myVideo.mp4 --output=JSON | jq '.media.track[1] | {FrameRate: .FrameRate, Duration: .Duration, Width: .Width, Height: .Height}'

提取的信息..。

代码语言:javascript
运行
复制
{
  "FrameRate": "30.000",
  "Duration": "158.334",
  "Width": "320",
  "Height": "176"
}

一旦你熟悉了jq的过滤器,可能性是无穷无尽的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41231998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档