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