Подтвердить что ты не робот

Получить размеры видеофайла

Есть ли способ в python получить размеры видеофайла или другой библиотеки, которые бы это сделали? Эквивалент a Media Info или что-то еще? Спасибо.

4b9b3361

Ответ 1

В моей последней компании у нас была аналогичная проблема, и я не мог найти какую-либо библиотеку python для этого. Таким образом, я закончил использование mediainfo из python, информация о медиа также имеет параметр командной строки, и очень легко разобрать вывод, поэтому практически ваш python-модуль, который использует media-info, будет достаточным. Это имеет дополнительное преимущество, поскольку в конечном итоге вы обнаружите, что все программное обеспечение типа media-info не поддерживает все кодеки/формат, поэтому вы можете использовать несколько программ/библиотек под капотом с единой оболочкой python.

Ответ 2

В этой библиотеке есть пример, который делает именно это на главной странице (print_info(vs)):

http://code.google.com/p/ffvideo/

Это оболочка вокруг ffmpeg (кажется, есть несколько библиотек Python для использования ffmpeg).

Ответ 3

Вы можете использовать чистый инструмент Python hachoir-metadata:

#!/usr/bin/env python
"""Get dimensions of a video file.

Usage: get-video-dimensions <video-file>
"""
import sys
from itertools import chain

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

if len(sys.argv) != 2:
    sys.exit(__doc__)

file_metadata = extractMetadata(createParser(unicodeFilename(sys.argv[1])))
print("%sx%s" % next((metadata.get('width'), metadata.get('height'))
                     for metadata in chain([file_metadata], file_metadata.iterGroups())
                     if metadata.has('width') and metadata.get('height')))

Для установки:

$ pip install hachoir-{core,parser,metadata}

Ответ 4

Видеомодуль в Pygame должен работать.

Ответ 5

Если вы правильно поняли, вы имеете в виду разрешение видео, например (768x432).

Это можно сделать, просто используя opencv в python.

import cv2
file_path = "./video.avi"  #change to your own video path
vid = VideoCapture( file_path )
height = vid.get(cv2.CAP_PROP_FRAME_HEIGHT)
width = vid.get(cv2.CAP_PROP_FRAME_WIDTH)

Ответ 6

Старый вопрос, но... Чтобы получить размер файла:

file_size_in_Mio = os.path.getsize(name_of_video) //(1024*1024)