我创建了follow函数
import cv2
import numpy as np
FPS = 10
def write_video(file_name, images, slide_time=5):
fourcc = cv2.VideoWriter.fourcc(*'X264')
out = cv2.VideoWriter(file_name, fourcc, FPS, (870, 580))
for image in images:
cv_img = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
for _ in range(slide_time * FPS):
out.write(cv_img)
out.release()
它曾经工作过,但我把它弄坏了,不知道怎么了
当我尝试使用MPV打开时,我得到:
[ffmpeg/demuxer] avi: Could not find codec parameters for stream 0 (Video: h264 (X264 / 0x34363258), none, 870x580): unspecified pixel format
[ffmpeg/demuxer] Consider increasing the value for the 'analyzeduration' and 'probesize' options
(+) Video --vid=1 (h264 870x580 10.000fps)
Exiting... (Errors when loading file)
以下是一个最小可复制示例:
import requests
from PIL import Image
from io import BytesIO
import cv2
import numpy as np
FPS = 10
res = requests.get('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ftse1.mm.bing.net%2Fth%3Fid%3DOIP.bNvIoWPYwYWXe-gpRKsalQHaE9%26pid%3DApi&f=1')
image = Image.open(BytesIO(res.content))
image = np.array(image)
image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
fourcc = cv2.VideoWriter.fourcc(*'MJPG')
video = cv2.VideoWriter('output.avi', fourcc, FPS, (870, 580))
for _ in range(13 * FPS):
video.write(image)
video.release()
我想用你的代码来解决这些问题
错误显示:
表示
x264
编解码器在当前环境中不可用您可以安装
opencv-python
或将编解码器初始化为
MJPG
(运动JPEG)。原因是MJPG
适用于.avi
文件问题2:
您正在从
RGB
转换为BGR
我建议您阅读图像,这样您就不必转换为
BGR
cv2.imread
以BGR
格式读取图像还要确保每个图像的大小与定义的
VideoCapture
大小相同根据最小可再现误差更新代码:
相关问题 更多 >
编程相关推荐