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

Moh*_*ahi 11 python video opencv

我正在使用opencv-python==4.5.1.48python3.9docker。我想以 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()
Run Code Online (Sandbox Code Playgroud)

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

OpenCV:FFMPEG:编解码器 ID 27 和格式“mp4 / MP4(MPEG-4 第 14 部分)”不支持标记 0x34363268/'h264' OpenCV:FFMPEG:回退使用标记 0x31637661/'avc1' 找不到编解码器的编码器id 27:未找到编码器

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

更新

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

Tom*_*bon 5

以下是我在 ubuntu20.04\xef\xbc\x9a 上的解决方案

\n
sudo apt install build-essential cmake git python3-dev python3-numpy \\\nlibavcodec-dev libavformat-dev libswscale-dev \\\nlibgstreamer-plugins-base1.0-dev \\\nlibgstreamer1.0-dev libgtk-3-dev \\\nlibpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev \\\nlibopencv-dev x264 libx264-dev libssl-dev ffmpeg\n\n\npython -m pip install --no-binary opencv-python opencv-python\n
Run Code Online (Sandbox Code Playgroud)\n

参考

\n


Moh*_*ahi 3

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