Ubuntu22.04下如何用FFmpeg/OpenCV2使用H264编码器生成兼容视频
解决Ubuntu 22.04下OpenCV生成H264视频无法在Firefox播放的问题
核心问题分析
你遇到的错误根源是:MP4容器不支持h264这个FourCC标签,H264编码在MP4格式中对应的标准FourCC是avc1而非h264。另外,pip安装的OpenCV属于简化包,对FFmpeg编码器的绑定存在部分限制,需要调整参数适配。
直接解决方案
1. 替换正确的FourCC编码
将代码中的cv2.VideoWriter_fourcc(*"h264")替换为以下任一合法标签:
cv2.VideoWriter_fourcc(*'avc1'):MP4容器标准的H264标签cv2.VideoWriter_fourcc(*'H264'):部分FFmpeg版本兼容的大写标签
同时必须指定yuv420p像素格式(这是浏览器唯一支持的H264像素格式),示例代码如下:
import cv2 import os frame_dir = "你的图片序列路径" frames = sorted([os.path.join(frame_dir, f) for f in os.listdir(frame_dir) if f.endswith(('.jpg', '.png'))]) if not frames: exit() # 获取第一帧尺寸信息 height, width = cv2.imread(frames[0]).shape[:2] fps = 24 # 根据需求调整帧率 # 初始化VideoWriter,使用avc1编码 fourcc = cv2.VideoWriter_fourcc(*'avc1') out = cv2.VideoWriter('output.mp4', fourcc, fps, (width, height), isColor=True) # 强制设置像素格式为yuv420p(部分OpenCV版本需手动指定) out.set(cv2.CAP_PROP_FORMAT, cv2.COLOR_BGR2YUV_I420) for frame_path in frames: frame = cv2.imread(frame_path) out.write(frame) out.release()
2. 修复OpenCV的FFmpeg编码支持
如果上述方法仍报错,说明pip安装的OpenCV未启用H264编码支持,需要重新编译OpenCV并绑定完整FFmpeg:
# 安装编译依赖 sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt install libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev # 克隆OpenCV及扩展模块源码 git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git cd opencv && mkdir build && cd build # 配置编译参数,启用FFmpeg和H264支持 cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D WITH_FFMPEG=ON \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ -D BUILD_EXAMPLES=OFF .. # 编译并安装 make -j$(nproc) sudo make install
3. 备选方案:直接用FFmpeg命令行转换(最可靠)
既然你已安装FFmpeg,直接用命令行生成浏览器兼容的视频更简单,无需依赖OpenCV:
# 假设图片序列命名为frame_0001.jpg、frame_0002.jpg... ffmpeg -framerate 24 -i frame_%04d.jpg -c:v libx264 -pix_fmt yuv420p output.mp4
参数说明:
-framerate:设置视频帧率-i frame_%04d.jpg:匹配4位数字命名的图片序列(可根据实际命名规则调整)-c:v libx264:指定使用H264编码器-pix_fmt yuv420p:强制输出浏览器支持的像素格式
内容的提问来源于stack exchange,提问作者Vince
相关产品推荐
相关产品推荐

