繁体   English   中英

使用 H264 编解码器将视频保存在 opencv 中

[英]Save video in opencv with H264 codec

我正在使用opencv-python==4.5.1.48python3.9 docker。我想保存一个h264格式的视频。 这是我的 function 保存视频:

import cv2

def save_video(frames):
    fps = 30
    video_path = '/home/save_test.mp4'
    fourcc = cv2.VideoWriter_fourcc(*'h264')
    video_writer = cv2.VideoWriter(video_path, fourcc, fps, (112, 112))

    for frame in frames:
        video_writer.write(frame)

    video_writer.release()

当我使用.mp4 格式保存视频时,出现以下错误:

OpenCV:FFMPEG:标签 0x34363268/'h264' 不支持编解码器 ID 27 和格式'mp4 / MP4(MPEG-4 第 14 部分)' OpenCV:FFMPEG:回退使用标签 0x31/6avc 代码无法找到编码器 0x316avc 代码id 27: 未找到编码器

我搜索并阅读了一些解决方案,但没有一个能解决我的问题。

更新

我还安装了这篇文章中推荐的libx264-dev ,但没有用。

下面是我在ubuntu20.04上的解决方案:

sudo apt install build-essential cmake git python3-dev python3-numpy \
libavcodec-dev libavformat-dev libswscale-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer1.0-dev libgtk-3-dev \
libpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev \
libopencv-dev x264 libx264-dev libssl-dev ffmpeg


python -m pip install --no-binary opencv-python opencv-python

参考

最后,我找到了解决方案。 我可以在ubuntu:20.04 docker 中解决我的问题。 您应该注意的重要一点是,您应该通过apt-get install python3-opencv安装 OpenCV 而不是使用pip

您可以自己构建 opencv(如上所述)或做一个更快的解决方案:安装 anaconda3 并在创建新环境后运行“conda install -c conda-forge opencv”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM