python之使用ffmpeg下载直播推流视频rtmp、m3u8协议实时获取时间进度

一、ffmpeg下载

录制函数

python 复制代码
    def download_video_by_live_url():
		playUrl = "rtmp://....."    #推流url:rtmp、m3u8等
        print(f"已开始录制: playUrl:{playUrl}")

        now_time = datetime.now().strftime('%Y_%m_%d__%H_%M_%S')
        output_file =  now_time + ".mp4"
        output_file = re.sub(r'[\\/:*?"<>|]', '', output_file)
        ffmpeg_command = [
            "ffmpeg",
            "-i", playUrl,
            "-c", "copy",
            "-f", "mp4",
            output_file
        ]

        process = subprocess.Popen(
            ffmpeg_command,
            stdin=subprocess.PIPE,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            universal_newlines=True,  # decode bytes to str
            encoding="utf-8",
            bufsize=1
        )

        time_pattern = re.compile(r'time=(\d+:\d+:\d+\.\d+)')
        start_time = time.time()
        try:
            for line in process.stderr:
                line = line.strip()
                if 'time=' in line:
                    match = time_pattern.search(line)
                    if match and time.time() - start_time > 10:
                        start_time = time.time()
                        current_time = match.group(1)
                        print(f" Progress: {current_time}", flush=True)
                if 'No such stream' in line:
                    print(f"直播结束,结束录制!")
                    break


        except KeyboardInterrupt:
            print(f"检测到手动中断,正在优雅停止 ffmpeg...")
            process.stdin.write('q'.encode("GBK"))
            process.communicate()
            process.kill()
        except Exception as e:
            print(f"[{current_name}][{nickname}]录制出错: {e}")

        process.wait()
相关推荐
独行soc6 分钟前
2025年渗透测试面试题总结-67(题目+回答)
网络·python·安全·web安全·网络安全·adb·渗透测试
eybk33 分钟前
用python的socket写一个局域网传输文件的程序
服务器·网络·python
程序员的世界你不懂43 分钟前
【Flask】实现一个前后端一体的项目-脚手架
后端·python·flask
Zero_to_zero12341 小时前
NVSpeech_170k 数据集音频提取处理
人工智能·音视频
花酒锄作田1 小时前
[MCP][01]简介与概念
python·llm·mcp
Python私教1 小时前
Django全栈班v1.04 Python基础语法 20250912 上午
后端·python·django
言之。1 小时前
Django REST框架:ModelViewSet全面解析
数据库·python·django
Pocker_Spades_A2 小时前
Python快速入门专业版(二十六):Python函数基础:定义、调用与返回值(Hello函数案例)
开发语言·python
东方佑2 小时前
从音频到Token:构建原神角色语音识别模型的完整实践
人工智能·音视频·语音识别
猫林老师2 小时前
HarmonyOS多媒体开发:音视频播放与录制全解析
华为·音视频·harmonyos