我如何编译mlt以使用ffmpeg?

How do I compile mlt to use ffmpeg?

ffmpeg 可以正常编译,mlt 也可以。

并且 melt 在 color:green 等方面运行良好,但无法打开 .asf 视频文件,但是 ffplay 可以正常播放它们。

我尝试了以下方法,但 mlt 仍然无法播放 asf 文件:

./configure --enable-gpl3 --enable-gpl --avformat-shared=/big/src/ffmpeg/libavformat/

./configure --enable-gpl3 --enable-gpl 

./configure

当我尝试像这样播放 asf 文件时,我得到:

bash-4.3$ melt /big/video-coon.asf 
Failed to load "/big/video-coon.asf"
Failed to load "/big/video-coon.asf"
Usage: melt [options] [producer [name=value]* ]+
Options:
  -attach filter[:arg] [name=value]*       Attach a filter to the output
[snip]
For more help: <http://www.mltframework.org/>

如果有人能提供有关如何让 mlt 读取这些文件的线索,我将不胜感激!

我尝试使用 ffmpeg 将 .asf 文件转换为 .dv 文件(这使它变大了!),但这也无法在 melt 中播放。 (但是玩过 ffplay/mplayer。)

非常感谢,

杰西

好吧,我让它工作了..我想。 当然,有一个例子,我什至无法构建 ffmpeg(它说需要用 -fPIC 编译一些东西)但后来我卸载了(make uninstall)mlt,然后在 ffmpeg 上进行清理和重新配置让它开始了再次.

据我所知,这里是使用 multilib 在 slackware 14.2 64 位上从源代码构建 ffmpeg 和 mlt 的技巧:

请注意,在我的例子中,我有一个 /usr/lib 和一个 /usr/lib64/ 以及每个库中的一些库。

我的 PKG_CONFIG_PATH 不包括 /usr/lib/pkgconfig/ 这是 ffmpeg 的安装位置 libavformat.pc,所以 pkg-config 找不到它,所以 mlt 认为 ffmpeg 是未安装,因此要修复我必须确保设置了环境变量:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig/

此外,libavformat 的某些组件似乎在一个 lib 目录中,而其他组件在另一个目录中,因此我还必须设置 $LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=$D_LIBRARY_PATH:/usr/lib:/usr/lib64

设置完成后,如果您之前尝试安装过,我建议转到 mlt 源文件夹并键入 make uninstall,以防它干扰 ffmpeg 的编译。 (是的是的,我知道不应该需要它,但我今晚有些奇怪,所以我只是告诉你。)

同样适用于 ffmpeg - make uninstall 如果您尝试安装它时不愉快。

1: cd 到 ffmpeg 的源目录。

2: 运行 ./configure --enable-shared --enable-gpl --enable-version3 && make -j8 && make install.

3:如果顺利的话,cd到mlt的源码目录。

4: 运行 make clean && ./configure --enable-gpl --enable-gpl3 && make -j8 && make install

一些要点:

1: ffmpeg 必须使用 --enable-shared 构建,mlt 才能使用它。

2:mlt 需要 $PKG_CONFIG_PATH 完全设置以在 ./configure 期间检测 ffmpeg。

3:mlt 需要在 运行 时正确设置 $LD_LIBRARY_PATH。

当然,所有这些可能特定于特定版本的 ffmpeg 和 mlt,在撰写本文时是最新的,但也许它会对某些人有所帮助。