网站后台管理系统制作网站关键词用什么做

当前位置: 首页 > news >正文

网站后台管理系统制作,网站关键词用什么做,上海正规做网站公司,大连在哪个省一、opencv 交叉编译没有 ffmpeg #xff0c;会导致视频打不开 在交叉编译时候#xff0c;发现在 pc 端能用 opencv 打开的视频#xff0c;但是在 rv1126 上打不开。在网上查了很久#xff0c;原因可能是 交叉编译过程 ffmpeg 造成的。之前 ffmpeg 是直接用 apt 安装的会导致视频打不开 在交叉编译时候发现在 pc 端能用 opencv 打开的视频但是在 rv1126 上打不开。在网上查了很久原因可能是 交叉编译过程 ffmpeg 造成的。之前 ffmpeg 是直接用 apt 安装的opencv 编译也是直接用 Cmake 命令行进行的。 网上特别推荐用命令行进行编译但是本次交叉编译我发现使用 CMake-gui 进行编译能更好地找出错误因为不管是警告还是错误CMake-gui 都会用红字来表示。 解决opencv源代码编译找不到ffmpeg-CSDN博客 二、准备工作 创建一个目录/opt/software把 opencv4.5.5、x264、ffmpeg-4.x 都下载到该目录 再创建一个目录/opt/out-arm用作 x264、ffmpeg的安装目录 三、交叉编译x264 opencv交叉编译静态库支持ffmpeg、libjpeg实现取流及写入jpeg文件_交叉编译 生成静态库_程序员阿周的博客-CSDN博客 1、解压源码并且进入源码目录 2、编译动态库目的是编译ffmpeg使用命令如下 #./configure –prefix/opt/software/opencv –hostarm-linux –cross-prefixarm-linux-gnueabihf- –disable-asm –enable-shared #make -j6 #make install 3、编译静态库目的是最后我们的应用程序链接使用命令如下 #./configure –prefix/home/cxyazhou/work/opencv –hostarm-linux –cross-prefixarm-linux-gnueabihf- –disable-asm #make clean;make -j6 #make install 注意静态库编译时make install只会拷贝bin下的文件到install目录所以这里需要手动拷贝头文件、静态库到install目录基于上面已经编译了动态库会自动拷贝头文件这里我们只要拷贝静态库到install的lib目录就可以 #cp libx264.a /opt/out-arm/lib/ 四、交叉编译 ffmpeg opencv交叉编译静态库支持ffmpeg、libjpeg实现取流及写入jpeg文件_交叉编译 生成静态库_程序员阿周的博客-CSDN博客 0、配置下环境变量,防止编译 ffmpeg 时候找不到 x264库 ffmpeg 编译问题记录-CSDN博客 #export PKG_CONFIG_PATH/opt/out_arm/lib/pkgconfig/ 1、解压源码并且进入源码目录 2、编译静态库命令如下 #./configure –cross-prefixarm-linux-gnueabihf- –enable-cross-compile –target-oslinux –ccarm-linux-gnueabihf-gcc –archarm64 –prefix/opt/out-arm –enable-ffmpeg –disable-armv5te –disable-armv6 –disable-armv6t2 –disable-asm –enable-swscale –enable-avresample –enable-gpl –enable-libx264 –extra-cflags-I/opt/out-arm/include –extra-ldflags-L/opt/out-arm/lib #make -j6 #make install 五、交叉编译 OpenCV opencv交叉编译包含ffmpeg_交叉编译 opencv ffmepg_思而后行之的博客-CSDN博客 Configure 前工作 按照上述块引用中的博客来另外我还通过 Add Entry 指定了安装目录 docker 容器中 /mnt 目录 会映射整个开发板 Configure Configure 过程中的一些 Warning 不用太在意只要 Configure 能完成就行 检查 Configure 结果FFMPEG 为 YES 欧耶 Generate Generate 在上面的博客中没有报错但是我这里报错 CMake Error in modules/videoio/CMakeLists.txt:Imported target ocv.3rdparty.ffmpeg includes non-existent path /mnt/opt/software/opencv/includein its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:* The path was deleted, renamed, or moved to another location.* An install or uninstall procedure did not complete successfully.* The installation package was faulty and references files it does notprovide. 解决方法是把 x264、 ffmpeg库的安装目录下的 include 文件夹的内容 copy 过去

copy /opt/out-arm/include/*     /mnt/opt/software/opencv/include -r 在构建目录下执行的工作

Generate 完成后关闭 cmkae-gui回到构建目录执行

make -j8

make install 安装完毕 六、检查是否能打开视频

CMakLists.txt cmake_minimum_required(VERSION 2.8.4)STRING(REGEX REPLACE ./(.) \1 CURRENT_FOLDER \({CMAKE_CURRENT_SOURCE_DIR} ) MESSAGE(current project: \){CURRENT_FOLDER})set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_CROSSCOMPILING TRUE)cmake_host_system_information(RESULT arch_value QUERY OS_PLATFORM)if(NOT \({arch_value} STREQUAL armv7l)include (\)ENV{HOME}/configs/cross.cmake) endif()project(video_test)# 设置链接器路径 link_directories(/mnt/usr/lib/arm-linux-gnueabihf)set(CMAKE_PREFIX_PATH /mnt/usr \({CMAKE_PREFIX_PATH}) find_package(OpenCV REQUIRED)add_executable(video_test test.cpp )target_include_directories(video_test PUBLIC \){OpenCV_INCLUDE_DIRS} ) target_link_libraries(video_test PRIVATE ${OpenCV_LIBS} /mnt/usr/lib/ogdi/libgdal.so)target_link_libraries(video_test PRIVATE -Wl,-rpath,/mnt/usr/lib/arm-linux-gnueabihf/) test.cpp #include opencv2/opencv.hpp #include iostream int main() {cv::VideoWriter outputVideo(/userdata/result.mp4,cv::VideoWriter::fourcc(m, p, 4, v),double(100030),cv::Size(640,480));// int camera_id 0;std::string video_path /userdata/test.avi;cv::VideoCapture camera(video_path);if(!camera.isOpened()){printf(camera %s cannt open\n, video_path.c_str());return 1;}elseprintf(camra %s opened\n, video_path.c_str());int frame_num camera.get(cv::CAP_PROP_FRAME_COUNT);int frame0;cv::Mat img;while(1){frame 1;camera img;if (img.empty()){printf(camera cannt get image!\n);}// cv::imshow(result, img);outputVideo.write(img);if(frame frame_num - 2) break;}camera.release();outputVideo.release();return 0; }交叉编译的可执行文件video_test 可以在开发板上打开视频文件 七、其他 在编译和安装源代码时常常会使用 pkg-config 工具来帮助 CMake 在构建过程中找到所需的库和头文件路径。pkg-config 是一个用于管理编译时和运行时依赖关系的工具它提供了一个标准的接口来查询所需库的相关信息。 当安装一个库时通常会将库的元数据信息如库路径、版本号、依赖关系等保存在对应的 .pc 文件中并将该文件安装到系统的 pkg-config 目录中。pkg-config 目录是一个包含所有项目所需的 .pc 文件的目录CMake 可以通过查询这些文件来获取库的信息。 在 CMake 中可以使用 find_package 命令来查找并配置依赖库的设置。当传递库的名称给 find_package CMake 将通过 pkg-config 查询相应的库信息并将结果存储在变量中例如 find_package(OpenCV REQUIRED)上述代码中find_package(OpenCV REQUIRED) 将在 pkg-config 目录中查找名为 opencv.pc 的文件并从中提取出 OpenCV 库的信息包括库的路径、版本号和所需的其他依赖关系。然后CMake 将使用这些信息来配置 OpenCV 库的设置以便在构建过程中可以找到和链接 OpenCV。 需要注意的是并非所有的库都使用 pkg-config 进行管理和配置。有些库可能使用其他方式来提供编译和运行时的元数据信息例如 CMake 配置文件或环境变量。因此在使用特定库时应查阅该库的文档或官方指南以了解正确的配置方法。