目录
安装opencv
apt install libopencv-dev
查看包名
dpkg -l|grep opencv
安装后:
安装ffmpeg
下载之后放入/usr/local/ffmpeg文件夹内
然后依次执行下面步骤
tar -xvf ffmpeg-4.4.2.tar.xz
cd ffmpeg-4.4.2
./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-libx264 --enable-gpl
make -j8
make install -j8
注意:银河麒麟V10仅仅按照这个步骤安装ffmpeg是不够的,我在此踩了不少坑,应该把下面图片中所有依赖项都在/usr/local/ffmpeg终端下进行安装:
apt install libavcodec-dev
apt install libavformat-dev
apt install libavutil-dev
apt install libavfilter-dev
apt install libavresample-dev
apt install libswresample-dev
apt install libswscale-dev
这些库一个个在/usr/local/ffmpeg下apt-get install就行了。
sudo ln -s /usr/local/ffmpeg/lib/libavdevice.so.61 /usr/lib/libavdevice.so.61
sudo ln -s /usr/local/ffmpeg/lib/libavfilter.so.10 /usr/lib/libavfilter.so.10
sudo ln -s /usr/local/ffmpeg/lib/libavformat.so.61 /usr/lib/libavformat.so.61
ls /usr/local/ffmpeg/lib/libavcodec.so.61
sudo ln -s /usr/local/ffmpeg/lib/libavcodec.so.61 /usr/lib/libavcodec.so.61
sudo ln -s /usr/local/ffmpeg/lib/libpostproc.so.58 /usr/lib/libpostproc.so.58
sudo ln -s /usr/local/ffmpeg/lib/libswresample.so.5 /usr/lib/libswresample.so.5
sudo ln -s /usr/local/ffmpeg/lib/libavutil.so.59 /usr/lib/libavutil.so.59
ffmpeg环境配置
cd /usr/local/ffmpeg/
输入以上命令查看ffmpeg文件夹中有没有bin,lib,share等文件,若有则下一步输入这些:
cd /usr/local/ffmpeg/bin
./ffmpeg -version
出现上述图片内容则安装成功,若不是,则继续下一步输入:
vi /etc/ld.so.conf.d/ffmpeg.conf
可能是一个新文件。如果不是就在文档末尾添加下面一句话(i键是编辑,esc+:+wq是编辑后保存退出)
/usr/local/ffmpeg/lib
保存退出,输入:ldconfig
下一步输入:sudo vim /etc/ld.so.conf
在文件中添加 /usr/local/lib
在文件中添加 /usr/local/ffmpeg/lib
在 /etc目录下 sudo ldconfig
接下来,输入命令:
sudo vim /etc/profile
在文件最后面加上这两行:
export HBASE_HOME=/usr/local/ffmpeg
export PATH=$PATH:/usr/local/ffmpeg/bin
保存退出,输入:
source /etc/profile 此命令是刷新配置
这样ffmpeg就安装完成且配好环境了,输入:ffmpeg -version应该可以显示版本,成功。
https://download.csdn.net/download/ohantanyanying/10613000
保存mp4 测试失败
sudo apt update
sudo apt install libopencv-dev
INCLUDEPATH += /usr/include/opencv4
LIBS += -L/usr/lib/aarch64-linux-gnu -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs -lopencv_videoio
std::string outputPath = "output.mp4";
// int codec = cv::VideoWriter::fourcc('X', '2', '6', '4'); // 使用 X264 编解码器
int codec = cv::VideoWriter::fourcc('X', 'V', 'I', 'D');
codec = cv::VideoWriter::fourcc('M', 'J', 'P', 'G');
int codec = cv::VideoWriter::fourcc('M', 'P', '4', 'V'); // 使用MP4编码
double fps = 30.0; // 视频的帧率
cv::Size frameSize(640, 480); // 视频帧的大小
// 创建和打开视频写入对象
cv::VideoWriter videoWriter(outputPath, codec, fps, frameSize, true);
if (!videoWriter.isOpened()) {
std::cerr << "Could not open the output video file for write\n";
return -1;
}
// 创建帧,每帧的灰度值逐渐增加
for (int i = 0; i < 120; ++i) { // 生成 120 帧
cv::Mat frame(frameSize, CV_8UC3, cv::Scalar(i*2, i*2, i*2)); // 使用灰度渐变
videoWriter.write(frame); // 写入帧到视频文件
}
// 释放资源
videoWriter.release();
std::cout << "Video has been saved successfully.\n";