在python中使用mediainfo提取电影名称

2024-05-29 03:40:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以通过命令行从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)的

从pymediainfo导入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。我对这一切都感到困惑,因为代码隐藏在应用程序中,所以诊断很困难


Tags: columns文件代码命令行pyparse评论track
2条回答

我的结局是:

#!/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)

mediainfo Inform="General;%Movie%" file.avi

Python的等价物是:

MI = MediaInfo()
MI.Open("file.avi")
MI.Get(Stream.General, 0, "Movie")

您可以有一些关于如何使用Python绑定(包括字段名列表)at this place的示例

编辑回答您的编辑:您的第一个问题是关于Python中的MediaInfo(现在仍然是问题的标题),而不是“pymediainfo”,我用Python中的MediaInfo回答。MediaInfo有一个Python绑定(对于Windows/macOS/Linux,“DLL”代表动态加载库,是MediaInfo中所有平台的通用名称,它在Windows.DLL、Linux.so和macOS.dylib中运行良好),我的示例在您的“Linux世界”上运行得非常好;pymediainfo是具有自己接口的第三方绑定,但实际上这与pymediainfo使用MediaInfo字段名类似。仅供参考,“电影”和“标题”在MediaInfo中是同义词,pymediainfo更喜欢“标题”。简而言之,如果您使用pymediainfo,则表示您使用pymediainfo,这样人们就不会对您想要pymediainfo的答案而说您在Python中使用了MediaInfo感到困惑

Jérôme,MediaInfo的开发者

相关问题 更多 >

    热门问题