查找在线视频的视频尺寸而无需下载

时间:2019-01-14 02:15:41

标签: python python-3.x cv2

我想确保example.com/video.mp4上的在线视频未在智能手机上归档,并且视频尺寸类似于1920 x 1080。

下载的视频很容易获得尺寸,

import cv2
vcap = cv2.VideoCapture('video.mp4') # 0=camera
width = vcap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)
height = vcap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)

但是我不想下载mp4文件,而且我想快速找到文件大小-如果下载文件,则无法做到。

1 个答案:

答案 0 :(得分:1)

我设法通过下载100KB的视频文件来确定尺寸:

import cv2
import requests

def get_dimensions(url):
    r = requests.get(url, stream=True)
    with open('output', 'wb') as f:
        for chunk in r.iter_content(chunk_size=100000):
            if chunk:
                f.write(chunk)
                break

    vcap = cv2.VideoCapture('output')
    return int(vcap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(vcap.get(cv2.CAP_PROP_FRAME_HEIGHT))

我已经在互联网上的多个文件上对其进行了测试,这是我得到的:

>> get_dimensions('http://file-examples.com/wp-content/uploads/2017/04/file_example_MP4_1920_18MG.mp4')
(1920, 1080)
>> get_dimensions('http://file-examples.com/wp-content/uploads/2018/04/file_example_AVI_640_800kB.avi')
(640, 360)
>> get_dimensions('https://www.sample-videos.com/video123/mkv/720/big_buck_bunny_720p_1mb.mkv')
(1280, 720)