使用python和OpenCv的视频屏幕捕获和视频未打开

bttbmeg0  于 2023-03-09  发布在  Python
关注(0)|答案(1)|浏览(150)

导入所需的软件包

`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”或具体来说,我的视频播放器不会播放任何帮助?

qco9c6ql

qco9c6ql1#

所以,
当我遇到完全相同的问题时,我到达了这个页面。默认播放器错误:出现错误。无法解复用流。我使用的是Linux(Ubuntu 22.04.2 LTS),屏幕分辨率为1366 X 768
故障排除所遵循的步骤:
1.由于它看起来像是文件类型或编解码器错误,我为fourcc做了一些不同的编解码器名称:XVID、MJPG等-未消退。
1.我想可能是电脑没有我想使用的编解码器。所以我安装了VLC播放器(全球公认的媒体播放器,大多数编解码器都内置在应用程序中)-默认播放器中出现相同的错误。VLC中没有错误,但也没有播放视频。
1.我后来意识到,在我的代码中,我使用的屏幕分辨率为1920X180,但实际屏幕分辨率只有1366X768。在代码中修复了它。-默认播放器错误更改:"播放文件需要MPEG-4视频解码器,但没有安装。"然而,VLC播放器完美地播放了屏幕录制。
解决方案:基于上面提供的所有输入,只需将分辨率设置更新为正确的屏幕分辨率(或更低),你应该很好。

相关问题