Administrator
发布于 2025-07-15 / 50 阅读
0
0

Hello Halo

Hello Halo

如果你看到了这一篇文章,那么证明你已经安装成功了,感谢使用 Halo 进行创作,希望能够使用愉快。

相关链接

import av
import numpy as np
import mss
import mss.tools

av.logging.set_level(av.logging.VERBOSE)

# 创建输出文件
output = av.open("screen_recording.mkv", "w")

# 设置编码器
try:
    encoder = av.Codec("libx264", "w").name
except av.FFmpegError:
    encoder = "h264"

# 设置输出流参数
output_stream = output.add_stream(encoder, rate=30)
output_stream.width = 1920  # 根据您的屏幕分辨率调整
output_stream.height = 1080  # 根据您的屏幕分辨率调整
output_stream.pix_fmt = "yuv420p"

# 创建mss实例
with mss.mss() as sct:
    # 获取主显示器
    monitor = sct.monitors[1]  # 主显示器
    try:
        while True:
            # 捕获屏幕
            screenshot = sct.grab(monitor)
            # 转换为numpy数组
            frame_array = np.array(screenshot)
            # 创建PyAV帧
            frame = av.VideoFrame.from_ndarray(frame_array, format='bgra')
            # 编码并写入
            packet = output_stream.encode(frame)
            output.mux(packet)
    except KeyboardInterrupt:
        print("录制已停止")

# 确保所有数据都被写入
packet = output_stream.encode(None)
output.mux(packet)

output.close()

在使用过程中,有任何问题都可以通过以上链接找寻答案,或者联系我们。

这是一篇自动生成的文章,请删除这篇文章之后开始你的创作吧!


评论