Есть ли способ в python получить размеры видеофайла или другой библиотеки, которые бы это сделали? Эквивалент a Media Info
или что-то еще? Спасибо.
Получить размеры видеофайла
Ответ 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)