我想确保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文件,而且我想快速找到文件大小-如果下载文件,则无法做到。
答案 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)