导入所需的软件包
`import pyautogui
import cv2
import numpy as np`
指定分辨率
`resolution = (1920, 1080)`
指定视频编解码器
`codec = cv2.VideoWriter_fourcc(*"XVID")`
指定帧速率。我们可以选择任何
值并进行实验
`fps = 60.0`
创建VideoWriter对象
`out = cv2.VideoWriter("Recording.avi", codec, fps, resolution)`
创建一个空窗口
`cv2.namedWindow("Live", cv2.WINDOW_NORMAL)`
# Resize this window
`cv2.resizeWindow("Live", 480, 270)`
`while True:
# Take screenshot using PyAutoGUI
img = pyautogui.screenshot()
# Convert the screenshot to a numpy array
frame = np.array(img)
# Convert it from BGR(Blue, Green, Red) to
# RGB(Red, Green, Blue)
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
# Write it to the output file
out.write(frame)
# Optional: Display the recording screen
cv2.imshow('Live', frame)
# Stop recording when we press 'Esc'
k = cv2.waitKey(10) & 0xFF # press 'Esc' to exit
if k == 27:
break
# Release the Video writer
out.release()
# Destroy all windows
cv2.destroyAllWindows()`
视频是成功的,但最终我无法打开视频文件“Recording.avi”或具体来说,我的视频播放器不会播放任何帮助?
1条答案
按热度按时间qco9c6ql1#
所以,
当我遇到完全相同的问题时,我到达了这个页面。默认播放器错误:出现错误。无法解复用流。我使用的是Linux(Ubuntu 22.04.2 LTS),屏幕分辨率为1366 X 768
故障排除所遵循的步骤:
1.由于它看起来像是文件类型或编解码器错误,我为fourcc做了一些不同的编解码器名称:XVID、MJPG等-未消退。
1.我想可能是电脑没有我想使用的编解码器。所以我安装了VLC播放器(全球公认的媒体播放器,大多数编解码器都内置在应用程序中)-默认播放器中出现相同的错误。VLC中没有错误,但也没有播放视频。
1.我后来意识到,在我的代码中,我使用的屏幕分辨率为1920X180,但实际屏幕分辨率只有1366X768。在代码中修复了它。-默认播放器错误更改:"播放文件需要MPEG-4视频解码器,但没有安装。"然而,VLC播放器完美地播放了屏幕录制。
解决方案:基于上面提供的所有输入,只需将分辨率设置更新为正确的屏幕分辨率(或更低),你应该很好。