import requests
import os
import subprocess

基础链接部分(不包含最后的编号部分)

base_url = “https://yzzy.play-cdn17.com/20230730/13850_d9788cef/2000k/hls/5ebb91cc3ad”

创建一个文件夹用于存放视频片段,取名为"video_segments"

if not os.path.exists(“video_segments”):
os.mkdir(“video_segments”)

下载视频片段函数

def download_video_segment(url, segment_name):
headers = {
“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36”
}
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
file_path = os.path.join(“video_segments”, segment_name)
with open(file_path, “wb”) as f:
f.write(response.content)
print(f"视频片段 {segment_name} 下载成功")
elif response.status_code == 404:
print(f"视频片段 {segment_name} 不存在,停止下载。")
return False
else:
print(f"下载视频片段 {segment_name} 失败,状态码: {response.status_code}")
except requests.exceptions.RequestException as e:
print(f"下载视频片段 {segment_name} 时出错: {e}")
return True

#自动确定编号范围并下载视频片段
number = 0
while True:
number_str = f"{number:06d}" # 将编号格式化为6位字符串
link = base_url + number_str + “.ts”
segment_name = f"video_{number_str}.ts"
if not download_video_segment(link, segment_name):
break
number += 1

创建用于FFmpeg合并的输入文件列表(采用文本文件方式)

video_segments_folder = “C:\Users\Administrator\PycharmProjects\pythonPaChong\video_segments”

input_file_path = os.path.join(video_segments_folder, “input.txt”)
with open(input_file_path, “w”) as f:
for root, dirs, files in os.walk(video_segments_folder):
for file in files:
if file.endswith(".ts"):
file_path = os.path.join(root, file).replace("\", “/”)
f.write(f"file ‘{file_path}’\n")

定义FFmpeg命令,使用 -f concat结合文本文件方式来合并视频片段

ffmpeg_command = f’ffmpeg -f concat -safe 0 -i {input_file_path} -c copy combined_video.mp4’

使用subprocess模块调用命令行执行FFmpeg命令

subprocess.call(ffmpeg_command, shell=True)
print(‘视频合并完成!’)

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐