【问题标题】:python3 opencv is not saving readable videopython3 opencv 不保存可读视频
【发布时间】:2018-11-26 21:35:12
【问题描述】:

我只是想让视频与网络浏览器兼容。从视频对象中我得到图像路径,图像是 png 类型,我只想将这些图像转换为视频并在浏览器中显示。

    path = settings.WEBUI_ROOT + '/events/'
    if not os.path.exists(path):
        os.makedirs(path)
    video = Video.objects.get(id=video_id)
    movements = Image.objects.filter(video=video)

    frame = cv2.imread(movements[0].file_path, 1)
    height, width, channel = frame.shape
    video_name = 'eventvideo.mp4'
    output_video = cv2.VideoWriter(path + video_name, cv2.VideoWriter_fourcc(*'MP4V'), 15, (height, width))

    for _, image in enumerate(movements):
        image = Image.objects.get(id=image.id)
        frame = cv2.imread(image.file_path)
        output_video.write(frame)
    output_video.release()

    result = {
        'success': True,
        'path': "events/" + event_video_name
    }
    return JsonResponse(result, safe=False)

使用 Django 和 JS 的工具

【问题讨论】:

  • 来帮帮我

标签: javascript django python-3.x opencv html5-video


【解决方案1】:

在创建 VideoWriter 时,您应该使用 (width, height) 元组作为帧大小,而不是 (height, width)

【讨论】:

  • 你改了一样,但浏览器不支持视频编解码器。
  • OpenCV:FFMPEG:标签 0x34363248/'H264' 不支持编解码器 id 27 和格式 'mp4 / MP4 (MPEG-4 Part 14)' OpenCV:FFMPEG:回退到使用标签 0x31637661/' avc1' [h264_nvenc @ 0x7f4e0407f5e0] 无法加载 libcuda.so.1 无法打开编解码器“h264_nvenc”:未指定的错误
  • @Karthikaeya​​n 好吧,错误是不言自明的 - OpenCV 正在尝试加载 NVIDIA NVENC 编解码器并且失败(您没有安装 CUDA)。你甚至安装了 NVIDIA GPU 吗?你能得到一个内置 x264 的 FFmpeg 的 OpenCV 版本吗?
  • 不确定问题出在哪里。您应该创建一个新问题,列出您的操作系统版本、您安装的 OpenCV 源代码版本、ffmpeg 版本和 CUDA 安装信息以获得一些帮助。
  • @Karthikaeya​​n 我不确定 OpenCV 是如何工作的,如果它有静态链接的 FFmpeg 或使用系统上的那个,但你可以试试 avconv -codecsffmpeg -codecs 看看你有什么编解码器?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-14
  • 2020-09-24
  • 1970-01-01
  • 2020-07-09
  • 2023-01-19
  • 2019-02-23
相关资源
最近更新 更多