update_video.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import requests
  2. import cv2
  3. import sys
  4. import pandas
  5. from model.sql_models import DB
  6. from config.using_config import quchen_text, dm
  7. def update_video_info():
  8. # 1.获取到所有的video_url
  9. sql = '''
  10. select * from video_info vi
  11. where length (preview_url )>0;
  12. '''
  13. df = pandas.read_sql(sql=sql, con=db_qc.engine)
  14. print(df)
  15. for index, row in df.iterrows():
  16. # 2.获取video信息----大小,时长,格式
  17. # video_url = 'http://wxsnsdy.wxs.qq.com/131/20210/snssvpdownload/SH/reserved/ads_svp_video__0b53qybncaaciaadpfl53jqbrbqe2gdafuka.f0.mp4?dis_k=4a9de877e9ee8dffe7a12a55700c7c0e&dis_t=1618994896&m=f4ed07a998cc60ba25ec1c2425176ea8'
  18. video_url = row['preview_url']
  19. rsp = requests.get(video_url)
  20. with open('aa.mp4', 'wb') as f:
  21. f.write(rsp.content)
  22. video_size = len(rsp.content)
  23. cap = cv2.VideoCapture('aa.mp4') # 视频流
  24. if cap.isOpened():
  25. rate = cap.get(5)
  26. frame_num = cap.get(7)
  27. print(frame_num, rate)
  28. duration = frame_num / rate
  29. print(video_size, duration)
  30. # byte_rate = video_size / 1024 * 8 / duration
  31. byte_rate = (video_size/(duration/8))
  32. print(byte_rate)
  33. # TODO:码率有问题之后重新计算
  34. # 3.进行存储
  35. sql = '''
  36. update video_info
  37. set size={},video_length={},type='mp4',byte_rate={}
  38. where video_id='{}'
  39. '''.format(video_size, duration, byte_rate, row['video_id'])
  40. db_qc.session.execute(sql)
  41. db_qc.session.commit()
  42. def update_byte_rate():
  43. sql = '''
  44. select * from video_info vi
  45. where length (preview_url )>0;
  46. '''
  47. df = pandas.read_sql(sql=sql, con=db_qc.engine)
  48. print(df)
  49. for index, row in df.iterrows():
  50. # 2.获取video信息----大小,时长,格式
  51. # video_url = 'http://wxsnsdy.wxs.qq.com/131/20210/snssvpdownload/SH/reserved/ads_svp_video__0b53qybncaaciaadpfl53jqbrbqe2gdafuka.f0.mp4?dis_k=4a9de877e9ee8dffe7a12a55700c7c0e&dis_t=1618994896&m=f4ed07a998cc60ba25ec1c2425176ea8'
  52. video_url = row['preview_url']
  53. video_size = row['size']
  54. duration = row['video_length']
  55. # byte_rate = video_size / 1024 * 8 / duration
  56. byte_rate = (video_size / (duration / 8))
  57. print(byte_rate)
  58. # TODO:码率有问题之后重新计算
  59. # 3.进行存储
  60. sql = '''
  61. update video_info
  62. set size={},video_length={},type='mp4',byte_rate={}
  63. where video_id='{}'
  64. '''.format(video_size, duration, byte_rate, row['video_id'])
  65. db_qc.session.execute(sql)
  66. db_qc.session.commit()
  67. if __name__ == '__main__':
  68. db_qc = DB(config=quchen_text)
  69. db_dm = DB(config=dm)
  70. # update_video_info()
  71. update_byte_rate()