You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python/OpenCV写入输出视频后Windows端无法播放如何解决

问题描述

业务逻辑为读取视频送入目标检测器,添加检测边界框后输出带标注的视频,开发时通过VS Code远程开发扩展经SSH连接Ubuntu 20.04环境开展工作,遇到视频输出异常:

  • 输出的视频可正常写入磁盘,OpenCV也能正常读取输出文件的帧,但在本地Windows 10设备上用系统自带媒体播放器播放时,提示「Server execution failed」错误
  • 先后尝试OpenCV原生VideoWriter接口、torchvision.io.write_video接口保存视频,故障表现完全一致,Tensorboard也无法正常加载播放该类输出视频

可稳定复现问题的OpenCV代码如下:

import cv2

cap = cv2.VideoCapture("video.mov")
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))

fourcc = cv2.VideoWriter_fourcc(*'MJPG')
out = cv2.VideoWriter('output5.avi', fourcc, 30, (width, height), isColor=True)

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    frame = cv2.resize(frame, (width, height))
    out.write(frame)

cap.release()
out.release()
根因分析

初期排查方向误判为远程Ubuntu环境的依赖配置问题,最终确认故障和代码逻辑、远程环境无关:Windows系统自带媒体播放器存在编码兼容限制,无法读取MJPG这类编码的视频文件,才会出现播放报错、无法加载的问题。

解决方案
  • 直接更换支持多编码格式的第三方媒体播放器(如VLC媒体播放器)即可正常播放输出视频,实测更换后问题完全解决
  • 若存在必须使用Windows自带播放器播放的强需求,可调整视频写入时的编码参数,替换为Windows原生支持的编码格式、匹配对应文件后缀后再输出。

内容的提问来源于stack exchange,提问作者tonyd629

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 21:03:58