【问题标题】:Get duration of an uploaded audio/video file获取上传的音频/视频文件的持续时间
【发布时间】:2016-04-23 06:29:01
【问题描述】:

我想获取上传到系统的音频/视频文件的持续时间。早些时候我使用过hachoir-metadata,但我猜它不再维护了,因为没有python 3兼容模块。

  • 还有其他轻量级的替代品吗?
  • 如果我想自己写一些东西来做,有什么先决条件?

【问题讨论】:

  • 如果你安装了ffmpeg可以使用ffprobe,如this answer所示;它应该适用于 ffmpeg 支持的任何音频或视频文件,这几乎是所有内容。

标签: python python-3.x


【解决方案1】:

如果你知道ffmpeg,你可以用ffmpeg读取音视频,它会输出音视频的时长

$ ffmpeg -i  "Gotye - Somebody That I Used To Know (feat. Kimbra) - official video.mp4" 2>&1 | grep -E -o "Duration: \S+" 
Duration: 00:04:03.90,

【讨论】:

  • 在尝试后得到了这个*** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.。试过了,avconv 可以了
  • 感谢 ffmpeg 的回答让我找到了一个可行的解决方案。 ;)
  • @RajeshYogeshwar,如果这对你有用,你可以接受我的回答。
  • @RajeshYogeshwar:FWIW,那个弃用警告有点误导。详情请见the Wikipedia article on Libav
  • @PM2Ring 感谢您的链接,我看到了弃用警告,因此提到了它并继续使用 avconv
【解决方案2】:

对于寻找这个特定东西的任何人,请按照以下步骤操作:

  • 确保已安装 libav-tools 软件包。您可以通过键入并尝试执行avconv 命令来检查它。如果不在场,请执行sudo apt-get install libav-tools
  • 然后,试试这个命令ffmpeg -i myvideo 2>&1 | grep Duration | cut -d ' ' -f 4 | sed s/,//(我找到了这个命令here)。
  • 如果你想在 python 脚本中使用它,你可以使用 subprocess 模块来达到你的效果

如果我在某处错了,请纠正我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-01
    • 2015-10-13
    • 2014-02-08
    • 2010-11-17
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多