ffmpeg_utils.py 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import requests
  2. import json
  3. class Ffmpeg:
  4. def get_oss_link(self, oss_key):
  5. url = "http://61.48.133.26:5555/api/v1/oss/get_object_link"
  6. payload = json.dumps({
  7. "oss_object_key": oss_key
  8. })
  9. headers = {
  10. 'Authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNGNhMTI4ZGYtYWMzMy00NWQ2LTg3MmEtMDAzOTk4MGVhM2ViIiwibmFtZSI6Inp5IiwiZXhwIjoyMDUwOTI3MjExfQ.k_rvuESjA62RgPDiLniVgJyLJn3Q8C1Y_AGq3CPRuKI',
  11. 'Content-Type': 'application/json'
  12. }
  13. response = requests.request("POST", url, headers=headers, data=payload)
  14. response = response.json()
  15. data = response['data']
  16. return data
  17. def merge_m3u8(self,url_link):
  18. url = "http://61.48.133.26:5555/api/v1/ffmpeg/merge_m3u8"
  19. data = {
  20. "url": url_link,
  21. "referer": ""
  22. }
  23. headers = {
  24. 'Authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNGNhMTI4ZGYtYWMzMy00NWQ2LTg3MmEtMDAzOTk4MGVhM2ViIiwibmFtZSI6Inp5IiwiZXhwIjoyMDUwOTI3MjExfQ.k_rvuESjA62RgPDiLniVgJyLJn3Q8C1Y_AGq3CPRuKI',
  25. 'Content-Type': 'application/json'
  26. }
  27. response = requests.request("POST", url, headers=headers, json=data, stream=True)
  28. for item in response.content.split(b'\r\n\r\n'):
  29. try:
  30. item = json.loads(item[6:].decode())
  31. if item['event'] == 'message':
  32. continue
  33. elif item['event'] == 'ffmpeg code':
  34. code = int(item['data'])
  35. if code != 0: # ffmpeg处理异常
  36. return
  37. elif item['event'] == 'result':
  38. oss_object_key = item['data']['oss_object_key']
  39. if oss_object_key:
  40. oss_url = self.get_oss_link(oss_object_key)
  41. return oss_url
  42. except json.decoder.JSONDecodeError:
  43. continue
  44. def webp2_jpg(self,webp2_url):
  45. url = "http://61.48.133.26:5555/api/v1/ffmpeg/webp2jpg"
  46. payload = json.dumps({
  47. "url": webp2_url,
  48. "referer": ""
  49. })
  50. headers = {
  51. 'Authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNGNhMTI4ZGYtYWMzMy00NWQ2LTg3MmEtMDAzOTk4MGVhM2ViIiwibmFtZSI6Inp5IiwiZXhwIjoyMDUwOTI3MjExfQ.k_rvuESjA62RgPDiLniVgJyLJn3Q8C1Y_AGq3CPRuKI',
  52. 'Content-Type': 'application/json'
  53. }
  54. response = requests.request("POST", url, headers=headers, data=payload)
  55. response = response.json()
  56. oss_object_key = response['data']['oss_object_key']
  57. if oss_object_key:
  58. oss_url = self.get_oss_link(oss_object_key)
  59. return oss_url
  60. else:
  61. return None
  62. if __name__ == '__main__':
  63. ffmpeg = Ffmpeg()
  64. print(ffmpeg.get_oss_link("jq_oss/video/20250103135417425230.mp4"))