📌  相关文章
📜  OpenCV: FFMPEG: tag 0x4745504d 'MPEG' is not supported with codec id 2 and format 'mp4 MP4 (MPEG-4 Part 14)' - Python Code Example(1)

📅  最后修改于: 2023-12-03 14:44:54.471000             🧑  作者: Mango

OpenCV: FFMPEG: tag 0x4745504d 'MPEG' is not supported with codec id 2 and format 'mp4 MP4 (MPEG-4 Part 14)' - Python Code Example

当使用 OpenCV 读取 MP4 格式的视频文件时,会遇到上述错误。这是因为 OpenCV 编译时没有包含 FFMPEG 库,无法正确解码 MPEG 格式的视频文件。

要解决此问题,我们需要重新编译 OpenCV 并包含 FFMPEG 库。以下是解决方法:

步骤一:下载 FFMPEG 库

在官网 https://ffmpeg.org/download.html 上下载最新版本的 FFMPEG 库,并解压到本地目录。

步骤二:编译 OpenCV

假设我们使用的是 Ubuntu 系统,我们需要在终端执行以下命令:

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

然后我们需要克隆 OpenCV 源码:

git clone https://github.com/opencv/opencv.git

接着,在 OpenCV 源码目录下创建一个 build 目录,并进入该目录:

cd opencv
mkdir build
cd build

使用以下命令,编译 OpenCV:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON -D WITH_FFMPEG=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..

其中 WITH_FFMPEG=ON 表示启用 FFMPEG 库的支持。

编译完成后,使用以下命令安装 OpenCV:

sudo make install
步骤三:验证是否安装成功

使用以下 Python 代码打开 MP4 视频文件:

import cv2

cap = cv2.VideoCapture('path/to/video.mp4')

while True:
    ret, frame = cap.read()

    if not ret:
        break

    cv2.imshow('Video', frame)

    if cv2.waitKey(1) == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

如果能够成功打开视频文件并显示,说明 OpenCV 成功包含了 FFMPEG 库并能正确解码 MPEG 格式的视频文件。如果还有问题,检查编译过程中是否有报错信息,或者留言咨询。