python 通过视频url获取视频的宽高方式

yipeiwu_com6年前Python基础

这里其实是通过获取视频截图的方式获得大小的

下面列举两个小demo

import cv2 #引入模块 获取视频截图的
 
from PIL import Image #引入模块 获取图片大小
import os #引入系统命令 删除图片
video_full_path="http://qnmov.a.yximgs.com/upic/2018/06/06/12/BMjAxODA2MDYxMjQwMTZfMTkzMDUyMjRfNjU2NzMwNzI5MF8xXzM=_hd3_Bc143c8abf799984d2cc75a52de7039f0.mp4?tag=1-1530685096-h-0-xbkiau97pb-2b932528a435f1d0"
cap = cv2.VideoCapture(video_full_path)
#print(cap.isOpened())
if cap.isOpened():#正常打开
  rval,frame = cap.read()
else:
  rval = False
cv2.imwrite("a.jpg",frame)
img = Image.open('a.jpg')
print(type(img.size))
print(img.size[0])
print(type(img.size[0]))
my_file = "images/1.jpg"
if os.path.exists(my_file):
  os.remove(my_file)
else:
 
  print("no such file")
 

demo2 更新数据库

#!/usr/bin/env python3
#-*- coding:utf-8 -*-
from short_video import ShortVideo
import json
import re
import requests
import hashlib
import cv2
from PIL import Image
import logging
import os
try:
  query = ShortVideo().select()
except:
  print('操作失败')
else:
  for item in query:
    shv = ShortVideo().select().where(ShortVideo.video_identify_md5 == item.video_identify_md5).get()
    video_url = shv.video_url
    cap = cv2.VideoCapture(video_url)
    if cap.isOpened():
      rval,frame = cap.read()
 
 
      cv2.imwrite("images/"+str(shv.id)+".jpg",frame)
      img = Image.open("images/"+str(shv.id)+".jpg")
      w = img.size[0]
      h = img.size[1]
      shv.width_height = str(w)+'x'+str(h)
      #更新完删除文件
      my_file = "images/"+str(shv.id)+".jpg"
      if os.path.exists(my_file):
        os.remove(my_file)
      else:
        logging.info("no such file")
    else:
      logging.info('id:'+str(shv.id)+"更新失败")
      continue
 
 
    if shv.save() == 1:
      print('更新成功')
    else:
      print('更新失败')
 

以上这篇python 通过视频url获取视频的宽高方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】

本文实例讲述了Python数据结构与算法之链表定义与用法。分享给大家供大家参考,具体如下: 本文将为大家讲解: (1)从链表节点的定义开始,以类的方式,面向对象的思想进行链表的设计 (2...

python中numpy包使用教程之数组和相关操作详解

前言 大家应该都有所了解,下面就简单介绍下Numpy,NumPy(Numerical Python)是一个用于科学计算第三方的Python包。 NumPy提供了许多高级的数值编程工具,...

python解决字符串倒序输出的问题

如下所示: #python解决字符串倒序输出 def string_reverse(m): num=len(m) a=[] for i in range(num): a.a...

Python线程下使用锁的技巧分享

使用诸如Lock、RLock、Semphore之类的锁原语时,必须多加小心,锁的错误使用很容易导致死锁或相互竞争。依赖锁的代码应该保证当出现异常时可以正常的释放锁。 典型代码如下:...

3个用于数据科学的顶级Python库

3个用于数据科学的顶级Python库

Python有许多吸引力,如效率,代码可读性和速度,使其成为数据科学爱好者的首选编程语言。Python通常是希望升级其应用程序功能的数据科学家和机器学习专家的首选。 由于其广泛的用途,P...