你如何使用libmp3lame构建LGPL版本的ffmpeg?

时间:2015-07-16 14:42:02

标签: compilation ffmpeg cross-compiling

我有一项任务是将mp3文件+某些图片转换为mp4视频。要做到这一点我使用ffmpeg库+ libmp3lame,但我必须使用LGPL版本。所以我正在尝试使用适当的标志来构建它,因为我无法在互联网上找到它。

我还需要一个win64版本,但我必须在Ubuntu VM(vagrant)上构建它。

这是我的脚本(来自vagrantfile的一部分):

 sudo apt-get install -y mingw-w64
 sudo apt-get install -y git     

 wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
 tar xzvf lame-3.99.5.tar.gz
 cd lame-3.99.5
 ./configure --host=x86_64-w64-mingw32 --prefix="/vagrant/ffmpeg_build" --disable-shared --enable-static
 make
 make install

 cd /vagrant

 git clone https://github.com/FFmpeg/FFmpeg.git              
 cd FFmpeg/  
 ./configure --prefix="/vagrant/ffmpeg_build" --arch=x86_64 --cross-prefix=x86_64-w64-mingw32- --target-os=mingw32 --enable-static --disable-shared --disable-debug --disable-yasm --disable-w32threads --disable-network --extra-libs=-static --extra-cflags="-I/vagrant/ffmpeg_build/include" --extra-ldflags="-L/vagrant/ffmpeg_build/lib"        
 make

不幸的是,在构建过程的最后,我得到了

==> default: CC ffmpeg_opt.o
==> default: CC ffmpeg_filter.o
==> default: CC ffmpeg_dxva2.o
==> default: LD ffmpeg_g.exe
==> default: CP ffmpeg.exe
==> default: STRIP      ffmpeg.exe
==> default: x86_64-w64-mingw32-strip
==> default: :stgaDQCc
==> default: : Protocol error
==> default: make:
==> default: *** [ffmpeg.exe] Error 1

我的配置缺少什么?提前谢谢!

1 个答案:

答案 0 :(得分:1)

您正在VM中构建,因此您构建的位置可能是VM和主机之间的共享空间,这可能会在运行strip时导致“协议错误”(请参阅​​例如here)。尝试取消共享构建文件夹或在另一个未共享的位置构建。