boxmoe_header_banner_img

Hello! 欢迎来到人生博客!

加载中

文章导读

面对多段视频流进行下载视频并合并


avatar
Thora 2025年2月11日 24
import requests#导入请求模组

#伪装
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36'}

num = 0#值设为0

while True:#未知循环
    # 视频片段序号有5位数,没有5位前面自动补0,d是整数,冒号是固定格式
    format_num = "{:05d}".format(num)
    #格式化链接,然后替换序号片段为上面的变量名format_num
    url = f"https://tx-safety-video.acfun.cn/mediacloud/acfun/acfun_video/1effc7a8e62c3ad7-5dd631b36078f68762e6a4a1f3835210-hls_720p_hevc_1.{format_num}.ts?pkey=ABAn8WS3Xndt-804bQwUPEtKJmraBh3yT5Fqka9ubRElmReLF1ctarR3D-l9U-bDFNfjtx462ficZ_9eowboESsoLFkkHmehkfPoAWh6sC-rrB5C5a63aFvEGq7cilFmqOiuyYIlvmFeeFriAqIbR-3k1FCQtSo8TjGtjxBp2ubkQPVDPH7UG5xnK80oOdLj0dST0Qn7f6JXF3EcjxoRMx6IsR3f9xkZ2qlMM_Ky8TBkT-DdUQ467OqxRVL431rV3hk&safety_id=AAKemyFTAkofw755RDRrzFrD"
    #发送请求
    res = requests.get(url, headers=headers)
    #判断片段是否循环完
    if res.status_code == 404:
    #结束循环
        break
    #写入保存文件
    open(f"第一集/{num}.ts", "wb").write(res.content)
    #打印请求状态
    print(res.status_code)
    #循环变量值+1
    num +=1
    #打印当前位置
    print(f"已经下载了第{num}段")

print(f"全部下载完毕,一共{num}段")

print("正在加载素材")
#导入视频剪辑模块
from moviepy.editor import *
#创建列表
video_clip = []
#打印状态
print("视频合并中")
#循环合并
for i in range(num):
    video = VideoFileClip(f"第一集/{i}.ts")
    #将循环的视频加载到video_clip中
    video_clip.append(video)
#合并视频
final = concatenate_videoclips(video_clip)

print("视频合并完成,导出视频")

final.write_videofile("第一集/完整视频.mp4")
感谢您的支持


评论(0)

查看评论列表

暂无评论


发表评论