- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
将 4 个字符拼接成一个 FourCC 代码。
在 OpenCV 中,fourcc() 函数用于生成 FourCC 代码,这是一种用于标识视频编解码器的四位字符代码。FourCC 代码通常用于指定视频的编解码器类型。
函数原型
static int cv::VideoWriter::fourcc
(char c1,char c2,char c3,char c4
)
参数
- 参数c1:第一个字符。
- 参数c2:第二个字符。
- 参数c3:第三个字符。
- 参数c4:第四个字符。
返回值
返回一个整数,表示由四个字符组成的 FourCC 代码。
代码示例
#include <iostream>
#include <opencv2/opencv.hpp>int main()
{// 创建 VideoCapture 对象来捕获视频帧cv::VideoCapture cap( 0 ); // 使用默认摄像头// 检查摄像头是否成功打开if ( !cap.isOpened() ){std::cerr << "Failed to open the camera." << std::endl;return -1;}// 设置视频编码器的 FourCC 代码int fourcc = cv::VideoWriter::fourcc( 'X', 'V', 'I', 'D' ); // 使用 XVID 编码器// 创建 VideoWriter 对象cv::VideoWriter writer( "output.avi", // 输出视频文件名cv::CAP_FFMPEG, // 指定 API 后端为 FFMPEGfourcc, // 视频编码器的 FourCC 代码25, // 帧率(每秒帧数)cv::Size( cap.get( cv::CAP_PROP_FRAME_WIDTH ), cap.get( cv::CAP_PROP_FRAME_HEIGHT ) ), // 帧大小true // 是否为彩色视频);if ( !writer.isOpened() ){std::cerr << "Failed to initialize the video writer." << std::endl;return -1;}// 捕获并写入视频帧cv::Mat frame;while ( true ){// 从摄像头读取一帧if ( !cap.read( frame ) ){std::cout << "No frame grabbed." << std::endl;break;}// 写入帧到视频文件writer.write( frame );// 显示当前帧cv::imshow( "Live Camera", frame );// 按 'q' 键退出循环if ( cv::waitKey( 1 ) == 'q' ){break;}}// 释放资源cap.release();writer.release();cv::destroyAllWindows();return 0;
}