MLT Multimedia Framework 介绍详见官网
一、前置条件
brew install ffmpeg
brew install sdl2 # 安装ffmepg时,sdl2作为其依赖会自动被安装,这一步可以不执行
brew install mlt
二、下载源码
git clone https://github.com/mltframework/mlt.git
三、配置Modules
- 打开
mlt/CMakeLists.txt
文件mlt的modules我自己是只想调试core和avformat,并且用sdl2作为显示输出。所以只打开
avformat、core、sdl2
这三个。其余的可以注释或者直接删掉。
set(modules
src/modules/avformat
src/modules/core
src/modules/sdl2
# src/modules/decklink
# src/modules/frei0r
# src/modules/feeds
# src/modules/gtk2
# src/modules/kdenlive
# src/modules/motion_est
# src/modules/normalize
# src/modules/oldfilm
# src/modules/opencv
# src/modules/plus
# src/modules/plusgpl
# src/modules/qt
# src/modules/rtaudio
# src/modules/vid.stab
# src/modules/vmfx
# src/modules/xine
# src/modules/xml
)
四、编译成Xcode工程
-
执行如下命令
mkdir build cd build cmake -G "Xcode" ..
不出意外的话,编译应该是成功的,如果有问题,先检查前置条件是否满足,如果有其他问题可以留言评论。
五、运行Xcode工程
1. 打开工程
编译成功以后,在 mlt/build
目录下会生成一个 MLT.xcodeproj
文件,打开它!!
2. 选择melt运行
然后,点击运行。不出意外的话,会遇到下面两个问题。
3. 遇到的两个报错
-
PREFIX_DATA 和 PREFIX_LIB
Use of underclared identifier 'PREFIX_DATA' Use of underclared identifier 'PREFIX_LIB'
解决方案
# 1. 查看mlt的安装路径 brew info mlt # 2. 打开报错位置,把PREFIX_DATA和PREFIX_LIB的值分别替换为(以我自己的路径为例) PREFIX_DATA: /usr/local/Cellar/mlt/6.12.0/share/mlt PREFIX_LIB: /usr/local/Cellar/mlt/6.12.0/lib/mlt
-
libSDL2.so
Apple Mach-O Linker (Id)Error No such file or directory: 'usr/local/Cellar/sdl2/2.0.9_1/lib/libSDL2.so'
解决方案
# 1. 打开 mlt/src/melt/CMakeLists.txt 把 IMPORTED_LOCATION ${libdir}/libSDL2.so 修改成 IMPORTED_LOCATION ${libdir}/libSDL2.dylib # 2. 打开 mlt/src/modules/sdl2/CMakeLists.txt 把 add_library(mltsdl2 MODULE ${mltsdl2_src}) 修改为 add_library(mltsdl2 SHARED ${mltsdl2_src}) # 后来试了一下,这一步好像不一定要做
从遇到的这几个问题来看,或许你就明白了为什么前置条件要安装那些库。其实不仅仅那三个库,如果你打开了更多的module,还有更多的依赖需要安装,当然你可以不通过 brew 的方式安装,但是它是最方便的方式。
4. 配置melt运行参数
比如你想播放一个input.mp4文件,在命令行中执行的命令是
melt input.mp4
那么你就可以在xcode中配置运行参数,如下图所示
同理,你想调试什么命令,就在这里配置什么参数。然后运行,断点,就可以调试mlt框架了。
5. 成功运行
再次执行程序,视频成功播放。
2020.02.26 更新
初次使用xcode时,在编译时可能会出现 The C compiler identification is unknown
的问题。
打开 CMakeError.log
文件会发现是 xcode-select
不在默认的路径的原因。
执行如下命令即可:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。