在Ubuntu上使用OpenCV2进行视频编码和解码,你需要首先安装OpenCV库
sudo apt-get update
sudo apt-get install build-essential cmake git pkg-config libavcodec-dev libavformat-dev libswscale-dev
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
make -j4 # -j4表示使用4个内核进行编译,根据你的CPU核心数调整
sudo make install
sudo ldconfig
现在你已经安装了OpenCV库,可以开始进行视频编码和解码。以下是一个简单的Python示例,展示了如何使用OpenCV2读取、编码和保存视频:
import cv2
# 读取视频
video = cv2.VideoCapture('input_video.mp4')
# 获取视频的宽度和高度
width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 创建一个视频写入器
fourcc = cv2.VideoWriter_fourcc(*'XVID') # 选择视频编码格式
out = cv2.VideoWriter('output_video.avi', fourcc, 20.0, (width, height))
while True:
# 读取视频帧
ret, frame = video.read()
if not ret:
break
# 将帧写入输出视频
out.write(frame)
# 显示帧(可选)
cv2.imshow('Frame', frame)
# 按'q'键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
video.release()
out.release()
cv2.destroyAllWindows()
这个示例将读取名为input_video.mp4
的视频文件,然后使用XVID编码器将其保存为output_video.avi
。你可以根据需要修改输入和输出文件名以及编码器设置。