back_api.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import requests
  4. import base64
  5. import os
  6. # ===================== 配置 =====================
  7. API_URL = "http://183.252.196.135:6001"
  8. INPUT_FILE = "/Users/alien/Desktop/Digital_Human/coco.mp4"
  9. # 输出文件名由调用脚本决定,这里使用动态命名
  10. import sys
  11. if len(sys.argv) > 1:
  12. OUTPUT_FILE = sys.argv[1]
  13. else:
  14. OUTPUT_FILE = "/Users/alien/Desktop/Digital_Human/back/video/result.mp4"
  15. BG_COLOR = "black"
  16. CROP_TO_PERSON = True
  17. CROP_MARGIN = 50
  18. # =================================================
  19. def main():
  20. print("🚀 开始处理视频...")
  21. # 读取视频并转 base64
  22. with open(INPUT_FILE, 'rb') as f:
  23. video_base64 = base64.b64encode(f.read()).decode('utf-8')
  24. # 发送请求(自动裁剪 + 背景颜色)
  25. response = requests.post(
  26. f"{API_URL}/v1/video/greenscreen",
  27. json={
  28. "video_base64": video_base64,
  29. "downsample_ratio": 0.25,
  30. "bg_color": BG_COLOR,
  31. "crop_to_person": CROP_TO_PERSON,
  32. "margin": CROP_MARGIN,
  33. "return_base64": True
  34. },
  35. timeout=600
  36. )
  37. # 获取结果
  38. result = response.json()
  39. video_bytes = base64.b64decode(result['video_base64'])
  40. # 直接保存到你指定的目录
  41. with open(OUTPUT_FILE, 'wb') as f:
  42. f.write(video_bytes)
  43. print(f"\n🎉 处理完成!")
  44. print(f"✅ 文件已保存到:{OUTPUT_FILE}")
  45. if __name__ == "__main__":
  46. main()