我可以通过命令行从我的avi文件中获得电影名
mediainfo --Inform="General;%Movie%" file.avi在python中,我可以访问mediainfo结构。
mediainfo = MediaInfo.parse(filename)但是,我无法找到命令行如何与数据结构匹配。稀疏的文档和所有示例都谈到了跟踪结构,当我的项目在一般情况下
不知道为什么这个网站只允许很短的评论,下面是一个评论
我很困惑。我看到的代码是nemo-media-columns.py (https://github.com/linuxmint/nemo-extensions/blob/master/nemo-media-columns/nemo-media-columns.py)
从进口MediaInfo .mediainfo =MediaInfo.parse(文件名)
duration = 0
for trackobj in mediainfo.tracks:
track = trackobj.to_data()
if track["track_type"] == "Video":
try:
info.pixeldimensions = "%dx%d" % (track["width"], track["height"])
except:
pass它的语法与您的建议完全不同,这个示例讨论的是我的Linux世界中不存在的DLL。我对此感到困惑,而且由于代码隐藏在应用程序中,诊断是很困难的。
发布于 2020-11-14 13:52:00
最后我得到了:
#!/usr/bin/python3
from pymediainfo import MediaInfo
mediainfo = MediaInfo.parse('1.avi')
for trackobj in mediainfo.tracks:
track = trackobj.to_data()
if track["track_type"] == "General":
try:
title = (track['title'])
except:
title = 'Unknown'
print(title)发布于 2020-11-13 16:28:59
mediainfo -通知=“General;%Movie%”file.avi
Python等价物是:
MI = MediaInfo()
MI.Open("file.avi")
MI.Get(Stream.General, 0, "Movie")您可以有关于如何使用Python (包括字段名列表) 在这个地方的示例。
编辑以回答您的编辑:您的第一个问题是关于Python中的MediaInfo (并且仍然是问题的标题),而不是"pymediainfo",我在Python中用MediaInfo回答。MediaInfo有一个Python (对于Windows/ macOS / Linux,"DLL“表示动态加载库,是MediaInfo中所有平台的通用名称,它在MediaInfo .dll、Linux.so和macOS.dylib中工作得很好),我的示例在您的"Linux”中运行得很好;pymediainfo是使用自己的接口进行第三方绑定的一个第三方,但实际上这与pymediainfo使用MediaInfo字段名类似。FYI“电影”和“标题”是MediaInfo中的同义词,pymediainfo更喜欢“标题”。简而言之,如果您使用pymediainfo表示您使用了pymediainfo,那么当您想要一个关于pymediainfo的答案时,人们不会感到困惑,但是您说您在Python中使用了MediaInfo。
Jér me,MediaInfo的开发者
https://stackoverflow.com/questions/64822420
复制相似问题