oarl_cut.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import os
  2. from utils.audio_analysis import audio_analysis_pipeline
  3. from modules.video_processing.video_concat import merge_videos
  4. from modules.video_processing.video_cut import video_cut_by_json
  5. from utils.llm_director import director_json
  6. from utils.video_concat import concat_videos
  7. from utils.common import read_video_list, find_vidoe2cut
  8. def main(video_path):
  9. # # 1、提取音频文件,用于语句筛选
  10. # audio_analysis_pipeline(video_path)
  11. # 2、获取语句筛选后的json文件
  12. video_name = os.path.splitext(os.path.basename(video_path))[0]
  13. json2script_path = f"output/filter_4/{video_name}.json"
  14. # # 3、口播脚本生成
  15. video_list = director_json(json2script_path)
  16. find_vidoe2cut(json2script_path, video_list)
  17. # 4、脚本视频片段裁切
  18. json2cut_path = f"output/for_cut/{video_name}.json"
  19. video_cut_by_json(json2cut_path)
  20. # 5、视频拼接
  21. video_list = read_video_list(f"output/script/{video_name}.json")
  22. video_list = [f"output/video_clips/{video_name}" for video_name in video_list]
  23. concat_videos(video_list)
  24. # 6、TODO:I 先生成脚本,再进行片段裁切;II 字幕纠偏和换行
  25. # 7、TODO: fisrt_cut \ oral_cut \\ aide_cut -> show_cut
  26. # 8、TODO: 口播片段筛选规则调整,确保至少筛留200个视频片段(关键词筛留规则)
  27. main("data/sub_video/videoa.mp4")