电商网站建设规划,创建网站收费,网站建设属于哪个类目,什么人做网站1 简介 Shotcut是一个开源的跨平台的视频编辑软件#xff0c;支持WIN/MACOS/LINUX等平台#xff0c;由于该项目的编译较为麻烦#xff0c;踩坑几许#xff0c;因此写此文章记录完整编译构建过程#xff0c;后续按此法编译#xff0c;可减少走弯路#xff0c;提高生产力。…1 简介 Shotcut是一个开源的跨平台的视频编辑软件支持WIN/MACOS/LINUX等平台由于该项目的编译较为麻烦踩坑几许因此写此文章记录完整编译构建过程后续按此法编译可减少走弯路提高生产力。 编译构建环境 qt sdk版本 6.4此文是qt 6.5.3请自行下载安装笔者已安装好Shortcut SDK版本23.09.29universal build 2 源码下载 源码下载建议不要在github上下载那不够建议从官方文档上下载。详情参见第6章。 下载后将shotcut-macos-sdk-230929.txz拷贝到以下home目录并解压
按实际Shotcut项目路径修改mlt-framework-7文件内容 prefix/Users/mingo/Applications/workspace/av/Shotcut
exec_prefix${prefix}/build
libdir${prefix}/Contents/Frameworks
includedir${prefix}/Contents/Frameworks/include
datadir${prefix}/build/sharemoduledir${prefix}/lib/mlt
mltdatadir${datadir}/mltName: mlt-framework
Description: MLT multimedia framework
Version: 7.19.0
Requires:
Libs: -L${libdir} -lmlt-7
Cflags: -I${includedir}/mlt-7按实际Shotcut项目路径需改mlt-7文件内容 prefix/Users/mingo/Applications/workspace/av/Shotcut
exec_prefix${prefix}/build
libdir${prefix}/Contents/Frameworks
includedir${prefix}/Contents/Frameworks/include
datadir${prefix}build/shareName: mlt
Description: C API for MLT multimedia framework
Version: 7.19.0
Requires: mlt-framework-7
Libs: -L${libdir} -lmlt-7
Cflags: -I${includedir}/mlt-7/mlt在Shotcut项目路径建立软链接 # 建立软连接
mingolocalhost:~/Applications/workspace/av$ ln -s Shotcut Shotcut.app
drwxr-xr-x 4 mingo staff 128 9 30 2023 Shotcut/
lrwxr-xr-x 1 mingo staff 7 5 28 15:42 Shotcut.app - Shotcut 接下来就是qt creator上的配置了。
3 qt creator配置 按如下图配置
遇到问题 -- Checking for module fftw3
-- No package fftw3 found
-- Checking for module fftw
-- No package fftw found
CMake Error at /opt/homebrew/Cellar/cmake/3.26.0/share/cmake/Modules/FindPkgConfig.cmake:607 (message):A required package was not found 问题原因以下目录缺失fftw3.pc文件. mingolocalhost:~/Applications/workspace/av/Shotcut/Contents/Frameworks/lib/pkgconfig$tree -L 1
.
├── fftw3.pc
├── frei0r.pc
├── frei0r.pc.bak
├── libavcodec.pc
├── libavcodec.pc.bak
├── libavdevice.pc
├── libavdevice.pc.bak
├── libavfilter.pc
├── libavfilter.pc.bak
├── libavformat.pc
├── libavformat.pc.bak
├── libavutil.pc
├── libavutil.pc.bak
├── libpostproc.pc
├── libpostproc.pc.bak
├── libswresample.pc
├── libswresample.pc.bak
├── libswscale.pc
├── libswscale.pc.bak
├── libvmaf.pc
├── libvmaf.pc.bak
├── mlt-7.pc
├── mlt-7.pc.bak
├── mlt-framework-7.pc
├── mlt-framework-7.pc.bak
├── movit.pc
├── movit.pc.bak
├── opencv4.pc
├── opencv4.pc.bak
├── vidstab.pc
└── vidstab.pc.bak1 directory, 31 files 在以上目录下创建fftw.pc文件并输出以下内容 prefix/Users/mingo/Applications/workspace/av/Shotcut
exec_prefix${prefix}/build
libdir${prefix}/Contents/Frameworks
includedir${prefix}/Contents/Frameworks/include
datadir${prefix}build/shareName: fftw3-3
Description: fftw3.3.10
Version: 3.3.10
Requires: fftw3.3
Libs: -L${libdir} -lfftw3.3
Cflags: -I${includedir}/fftw3然后在以下include目录下创建fftw3目录并把相关头文件放入其中 mingolocalhost:~/Applications/workspace/av/Shotcut/Contents/Frameworks/include$tree -L 1
.
├── fftw3
├── frei0r.h
├── ladspa.h
├── libavcodec
├── libavdevice
├── libavfilter
├── libavformat
├── libavutil
├── libpostproc
├── libswresample
├── libswscale
├── libvmaf
├── mlt-7
├── movit
├── opencv4
└── vid.stab15 directories, 2 files fftw3的头文件就放在fftw3目录下。具体头文件来源请参加下一节。
3.1 build配置 CMake的配置截图如下
CMake Kit configuration current configuration 文字描述如下 CMAKE_INSTALL_PREFIX /Users/mingo/Applications/workspace/avCMAKE_INSTALL_RPATH executable_path/../FrameworksCMAKE_INSTALL_RPATH_USE_LINK_PATH ON 然后在 CMake Kit configuration initial configuration 页面按如下配置
上图option的文字描述如下方便拷贝 -DCMAKE_INSTALL_PREFIX/Users/mingo/Applications/workspace/av -DCMAKE_INSTALL_RPATHexecutable_path/../Frameworks -DCMAKE_INSTALL_RPATH_USE_LINK_PATHON 最后在此指定pkg config的路径
老规矩文字描述如下方便copy PKG_CONFIG_PATH /Users/mingo/Applications/workspace/av/Shotcut/Contents/Frameworks/lib/pkgconfig 3.2 run配置 完整配置参见下图
截图不方便copy因此贴于此处 Executable /Users/mingo/Applications/workspace/av/Shotcut/Contents/MacOS/ShotcutQTDIR /Users/mingo/Applications/workspace/tools/qt5.15.2/6.5.3/macosQT_PLUGIN_PATH /Users/mingo/Applications/workspace/tools/qt5.15.2/6.5.3/macospluginsQML2_IMPORT_PATH ${QTDIR}/qml 4 安装fftw3 由于下载后的工程里没有fftw相关头文件和lib文件需要另外设法搞到。执行以下命令安装fftwarm64下缺省安装在/opt/homebrew/Cellar/fftw/3.3.10_1/下 brew install fftw 这一步骤如果报错请按报错指引安装即可。安装完毕后相关的文件在以下目录 mingolocalhost:~/Applications/workspace/av/Shotcut/Contents/MacOS$tree -L 2 /opt/homebrew/Cellar/fftw/3.3.10_1/
/opt/homebrew/Cellar/fftw/3.3.10_1/
├── AUTHORS
├── COPYING
├── COPYRIGHT
├── ChangeLog
├── INSTALL_RECEIPT.json
├── NEWS
├── README
├── TODO
├── bin
│ ├── fftw-wisdom
│ ├── fftw-wisdom-to-conf
│ ├── fftwf-wisdom
│ └── fftwl-wisdom
├── include
│ ├── fftw3-mpi.f03
│ ├── fftw3-mpi.h
│ ├── fftw3.f
│ ├── fftw3.f03
│ ├── fftw3.h
│ ├── fftw3l-mpi.f03
│ ├── fftw3l.f03
│ └── fftw3q.f03
├── lib
│ ├── cmake
│ ├── libfftw3.3.dylib
│ ├── libfftw3.a
│ ├── libfftw3.dylib - libfftw3.3.dylib
│ ├── libfftw3_mpi.3.dylib
│ ├── libfftw3_mpi.a
│ ├── libfftw3_mpi.dylib - libfftw3_mpi.3.dylib
│ ├── libfftw3_omp.3.dylib
│ ├── libfftw3_omp.a
│ ├── libfftw3_omp.dylib - libfftw3_omp.3.dylib
│ ├── libfftw3_threads.3.dylib
│ ├── libfftw3_threads.a
│ ├── libfftw3_threads.dylib - libfftw3_threads.3.dylib
│ ├── libfftw3f.3.dylib
│ ├── libfftw3f.a
│ ├── libfftw3f.dylib - libfftw3f.3.dylib
│ ├── libfftw3f_mpi.3.dylib
│ ├── libfftw3f_mpi.a
│ ├── libfftw3f_mpi.dylib - libfftw3f_mpi.3.dylib
│ ├── libfftw3f_omp.3.dylib
│ ├── libfftw3f_omp.a
│ ├── libfftw3f_omp.dylib - libfftw3f_omp.3.dylib
│ ├── libfftw3f_threads.3.dylib
│ ├── libfftw3f_threads.a
│ ├── libfftw3f_threads.dylib - libfftw3f_threads.3.dylib
│ ├── libfftw3l.3.dylib
│ ├── libfftw3l.a
│ ├── libfftw3l.dylib - libfftw3l.3.dylib
│ ├── libfftw3l_mpi.3.dylib
│ ├── libfftw3l_mpi.a
│ ├── libfftw3l_mpi.dylib - libfftw3l_mpi.3.dylib
│ ├── libfftw3l_omp.3.dylib
│ ├── libfftw3l_omp.a
│ ├── libfftw3l_omp.dylib - libfftw3l_omp.3.dylib
│ ├── libfftw3l_threads.3.dylib
│ ├── libfftw3l_threads.a
│ ├── libfftw3l_threads.dylib - libfftw3l_threads.3.dylib
│ └── pkgconfig
├── sbom.spdx.json
└── share├── info└── man9 directories, 57 files 然后进入到Shotcut的安装目录下执行如下命令将dylib库copy到Frameworks目录下 cd /Users/mingo/Applications/workspace/av/Shotcut/Contents/Frameworks
cp /opt/homebrew/Cellar/fftw/3.3.10_1/lib/libfftw3.3.dylib ./ 拷贝include文件到以下安装目录 cp /opt/homebrew/Cellar/fftw/3.3.10_1/include/* ./ mingolocalhost:~/Applications/workspace/av/Shotcut/Contents/Frameworks/include/fftw3$tree -L 1
.
├── fftw3-mpi.f03
├── fftw3-mpi.h
├── fftw3.f
├── fftw3.f03
├── fftw3.h
├── fftw3l-mpi.f03
├── fftw3l.f03
└── fftw3q.f031 directory, 8 files 5 编译运行 链接时报错fftw3库找不到
解决办法 确保fftw.pc文件按以下书写正确 prefix/Users/mingo/Applications/workspace/av/Shotcut
exec_prefix${prefix}/build
libdir${prefix}/Contents/Frameworks
includedir${prefix}/Contents/Frameworks/include
datadir${prefix}build/shareName: fftw3-3
Description: fftw3.3.10
Version: 3.3.10
Requires: fftw3.3
Libs: -L${libdir} -lfftw3.3
Cflags: -I${includedir}/fftw3 然后确保libfftw3.3.dylib库copy到了如下目录 /Users/mingo/Applications/workspace/av/Shotcut/Contents/Frameworks 最后执行Run Cmake重新生成makefile然后再编译链接即可
. 编译成功成功运行
6 参考文献 Shotcut - How To Use the macOS SDK 此文是Shotcut的macOS上的官方编译文档。借助此文可少走很多弯路。