python+playwright+ffmpeg实现自动打开网页录制视频声音为mp4文件代码
代码语言:python
所属分类:其他
代码描述:python+playwright+ffmpeg实现自动打开网页录制视频声音为mp4文件代码,一定要设置好AUDIO_DEVICE_NAME声音输出设备名称,可通过命令:ffmpeg -list_devices true -f dshow -i dummy来查找音频全名,在windows10测试运行通过。
代码标签: python playwright ffmpeg 自动 打开 网页 录制 视频 声音 mp4 文件
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
#!/usr/local/python3/bin/python3 # -*- coding: utf-8 -* import time import subprocess import platform import os # 用于检查文件大小 import threading # 用于处理ffmpeg输出(可选) from playwright.sync_api import sync_playwright import pygetwindow as gw # --- 配置参数 --- TARGET_URL = "https://www.bing.com" RECORD_DURATION_SECONDS = 15 # 录制时长(秒) OUTPUT_FILENAME = "recorded_video.mp4" FFMPEG_EXE = "ffmpeg" # 如果ffmpeg不在PATH中,请指定完整路径 # FFmpeg 音频设备名称 (Windows dshow) # 你需要通过 `ffmpeg -list_devices true -f dshow -i dummy` 确认你系统上的确切名称 AUDIO_DEVICE_NAME = "立体声混音 (Realtek(R) Audio)" # 直接指定,或留空表示不录音 # AUDIO_DEVICE_NAME = "" # 如果不想录制音频,设置为空字符串 # --- 辅助函数 --- def print_ffmpeg_output(pipe, pipe_name): """持续读取并打印ffmpeg的输出流,防止阻塞""" try: for line in iter(pipe.readline, b''): print(f"FFmpeg {pipe_name}: {line.decode(errors='ignore').strip()}") except Exception as e: print(f"Error reading FFmpeg {pipe_name}: {e}") finally: pipe.close() # --- 主逻辑 --- def record_screen_with_playwright_and_ffmpeg(): ffmpeg_process = None browser = None page = None # 将page移到这里,确保finally中可以访问 try: with sync_playwright() as p: browser = p.chromium.launch(headless=False) context = browser.new_context() page = context.new_page() print(f"正在打开网页: {TARGET_URL}") page.goto(TARGET_URL, wait_until="domcontentloaded") # domcontentloaded 通常更快 time.sleep(3) # 给窗口渲染和标题设置时间 window_title_substring = page.title() if not window_title_substring: print("警告: 未能获取到页面标题,尝试使用浏览器窗口标题的一部分") # 备用方案,可能不精确 all_browser_windows = gw.getWindowsWithTitle(browser.chromium.name) # "Chromium" or "Google Chrome" etc. if all_browser_windows: target_window = all_browser_windows[-1] # 通常是最新打开的 e.........完整代码请登录后点击上方下载按钮下载查看
网友评论0