python - 无法读取 cv2.VideoWriter 创建的 avi 文件
问题描述
一切似乎都写入了我的 avi 文件 output.avi(它比我启动程序之前大)但由于错误 0xc10100be 我无法打开它。我将如何尝试使文件可读?我对 python 也很有经验,但 openCV 对我来说是新的。
提前致谢!代码:
import psutil
import time
import cv2
import wx
import pyautogui
import numpy as np
import subprocess as sp
running = True
while True:
if "League of Legends (TM) Client" in (p.name() for p in psutil.process_iter()):
app = wx.App(False)
SCREEN_SIZE = wx.GetDisplaySize()
SCREEN_SIZE = tuple(SCREEN_SIZE)
fourcc = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')
out = cv2.VideoWriter("output.avi", fourcc, 20.0, SCREEN_SIZE)
ffmpeg = 'FFMPEG'
dimension = '{}x{}'.format(SCREEN_SIZE[0], SCREEN_SIZE[1])
f_format = 'bgr24'
fps = str(out.get(cv2.CAP_PROP_FPS))
command = [ffmpeg,
'-y',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', dimension,
'-pix_fmt', 'bgr24',
'-r', fps,
'-i', '-',
'-an',
'-vcodec', 'mpeg4',
'-b:v', '5000k',
"output.avi"]
proc = sp.Popen(command, stdin=sp.PIPE, stderr=sp.PIPE)
while True:
img = pyautogui.screenshot()
frame = np.array(img)
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
out.write(frame)
time.sleep(5)
cv2.destroyAllWindows
out.release()
解决方案
推荐阅读
- .net-core - 涉及代理时 Saml ReturnUrl 丢失
- moodle - 127.0.0.1 重定向你太多次 - Moodle 3.7
- command-line - 当我们使用命令行运行 Katalon 的测试时,有没有办法将结果消息发送到 slack?
- php - 在laravel中获取当前小时内的数据
- python - 如何跨多个文件创建不同的 Tkinter 帧?
- reactjs - 在子组件状态更改时,更新兄弟姐妹
- php - Foreach 仅针对条件中的一种情况的无效语句
- flutter - 使用自定义小部件时 Flutter UI 不会更新
- javascript - 访问 Javascript ES6 模块中的函数
- flutter - 为什么我得到一个空值?