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

gev0vcfq  于 2022-11-15  发布在  其他
关注(0)|答案(2)|浏览(237)

我正在使用opencv-python==4.5.1.48python3.9 docker。我想以h264格式保存视频。下面是我保存视频的函数:

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:标记0x 34363268/“h264”不支持编解码器ID 27和格式“mp4 / MP4(MPEG-4 Part 14)”OpenCV:FFMPEG:回退以使用标记0x 31637661/'avc 1'无法找到编解码器ID 27的编码器:未找到编码器
我搜索并阅读了一些解决方案,但没有一个解决我的问题。

更新

我还安装了libx264-dev,这是推荐在这个post和没有工作。

pcww981p

pcww981p1#

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

deyfvvtc

deyfvvtc2#

下面是我在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

refer

相关问题