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()
相关推荐
上班职业摸鱼人2 分钟前
python文件中导入另外一个模块这个模块
python
永远是夏天4 分钟前
Python面向对象编程(OOP)全教程:从入门到实战(附案例)
python
动感小麦兜15 分钟前
服务器搭建
linux·服务器·python
Pocker_Spades_A1 小时前
在家写的代码,办公室接着改?Jupyter通过cpolar实现远程访问这么玩
ide·python·jupyter
m5655bj1 小时前
使用 Python 高效复制 Excel 行、列、单元格
开发语言·python·excel
龙言龙论2 小时前
身份证信息批量处理系统:从入门到实战(附exe工具+核心源码)
数据库·python
Docda2 小时前
批量视频数据或高质量图片数据下载
音视频
顾道长生'2 小时前
(Arxiv-2025)MAGREF:用于任意参考视频生成的掩码引导与主体解耦
音视频
m0_626535202 小时前
代码分析 长音频分割为短音频
javascript·python·音视频
Black蜡笔小新2 小时前
视频融合平台EasyCVR远程监控技术在沙尘暴交通监控中的应用
音视频