3

サブフォルダーのディレクトリをループしようとしています。すべてのフォルダーには、その長さを数秒で取得したい .avi ファイルが 1 つ含まれています。

私は PyMedia を見つけました。http://pymedia.org/これを達成するのに役立つ可能性があることは理解していますが、ドキュメントの avi の長さについては何も見つかりません。

どうすればそれができるでしょうか?また、何らかの別のライブラリがある場合は、知りたいです。

編集:JF Sebastianのおかげで機能する最終的なソリューションを追加しました

import sys
import glob
import os

from hachoir_core.cmd_line import unicodeFilename
from hachoir_core.i18n import getTerminalCharset
from hachoir_metadata import extractMetadata
from hachoir_parser import createParser

path = "z:\*"
for fpath in glob.glob(os.path.join(path, '*avi')):
    filename = fpath
    filename, real_filename = unicodeFilename(filename), filename
    parser = createParser(filename, real_filename=real_filename)
    metadata = extractMetadata(parser)
    print fpath
    print("Duration (hh:mm:ss.f): %s" % metadata.get('duration'))
    print '\n'
4

3 に答える 3

2

サーバーが UNIX オペレーティング システムを実行している場合ffmpegは、これを行うために使用できます。通常、次のようなデフォルトのコマンドだけでffmpeg myvideo.avi、ビデオの詳細がすべて表示されます。

おそらくビデオの詳細を辞書またはリストに返す ffmpeg 用のpython ラッパーもあります。

編集:

また、手間をかけずにビデオの長さを出力できるffprobeと呼ばれる素晴らしいffmpegツールも見つけました。

fprobe -loglevel error -show_streams inputFile.avi | grep duration | cut -f2 -d=
于 2013-06-19T09:05:00.340 に答える
1

これを行うプラットフォームに依存しない方法があるかどうかはわかりませんが、これが Windows でのみ機能する必要がある場合は、MediaInfo (以下) にビデオ ファイルに関する詳細を出力するために使用できるコマンド ライン インターフェイスがあるようです。解析して情報を取得します。最も美しい解決策ではありませんが、うまくいくようです。

http://mediainfo.sourceforge.net/en

于 2013-06-19T07:45:22.357 に答える