【问题标题】:Extracting Movie name using mediainfo within python在 python 中使用 mediainfo 提取电影名称
【发布时间】:2021-02-25 13:12:30
【问题描述】:

我可以使用命令行从我的 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。我对这一切感到困惑,并且由于代码隐藏在应用程序中,因此诊断很困难。

【问题讨论】:

    标签: python mediainfo


    【解决方案1】:

    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 开发人员

    【讨论】:

      【解决方案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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-01-15
        • 2020-06-26
        • 1970-01-01
        • 2017-09-28
        • 1970-01-01
        • 1970-01-01
        • 2016-07-15
        • 2021-03-23
        相关资源
        最近更新 更多