如何使用 libmp3lame 构建 LGPL 版本的 ffmpeg?
How do you build LGPL version of ffmpeg with libmp3lame?
我有一个任务要将 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
我的配置缺少什么?提前致谢!
您正在 VM 中构建,因此您构建的位置可能是 VM 和主机之间共享的 space,这可能导致 "Protocol error" 当 运行剥离(参见 here)。尝试取消共享构建文件夹或在另一个未共享的位置构建。
我有一个任务要将 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
我的配置缺少什么?提前致谢!
您正在 VM 中构建,因此您构建的位置可能是 VM 和主机之间共享的 space,这可能导致 "Protocol error" 当 运行剥离(参见 here)。尝试取消共享构建文件夹或在另一个未共享的位置构建。