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()在使用过程中,有任何问题都可以通过以上链接找寻答案,或者联系我们。
这是一篇自动生成的文章,请删除这篇文章之后开始你的创作吧!