这是我目前正在遵循的流程:
安装相关性
sudo apt-get remove ffmpeg x264 libx264-dev
sudo apt-get update
sudo apt-get install build-essential subversion git-core checkinstall texi2html \
libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev \
libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev libavcodec-dev
安装x264
cd /opt
git clone git://git.videolan.org/x264.git
cd x264
./configure --enable-static --disable-opencl
make
sudo checkinstall --pkgname=x264 --default --pkgversion="3:$(./version.sh | \
awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes
安装libvpx
cd /opt
git clone https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure
make
sudo checkinstall --pkgname=libvpx --pkgversion="`date +%Y%m%d%H%M`-git" --backup=no \
--default --deldoc=yes
安装跛脚
sudo apt-get remove libmp3lame-dev
sudo apt-get install nasm
cd /opt
wget http://downloads.sourceforge.net/project/lame/lame/3.98.4/lame-3.98.4.tar.gz
tar xzvf lame-3.98.4.tar.gz
cd lame-3.98.4
./configure --enable-nasm --disable-shared
make
sudo checkinstall --pkgname=lame-ffmpeg --pkgversion="3.98.4" --backup=no --default --deldoc=yes
安装FFMpeg
cd /opt
git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
git checkout release/2.8
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc \
--enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb \
--enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid \
--enable-x11grab --enable-libvpx --enable-libmp3lame
make
这里,在编译FFmpeg时,我收到以下错误导致安装失败:
libavcodec/libvpxenc.c:107:6: error: ‘VP8E_UPD_ENTROPY’ undeclared here (not in a function)
[VP8E_UPD_ENTROPY] = "VP8E_UPD_ENTROPY",
^
libavcodec/libvpxenc.c:107:5: error: array index in initializer not of integer type
[VP8E_UPD_ENTROPY] = "VP8E_UPD_ENTROPY",
^
libavcodec/libvpxenc.c:107:5: error: (near initialization for ‘ctlidstr’)
libavcodec/libvpxenc.c:108:6: error: ‘VP8E_UPD_REFERENCE’ undeclared here (not in a function)
[VP8E_UPD_REFERENCE] = "VP8E_UPD_REFERENCE",
^
libavcodec/libvpxenc.c:108:5: error: array index in initializer not of integer type
[VP8E_UPD_REFERENCE] = "VP8E_UPD_REFERENCE",
^
libavcodec/libvpxenc.c:108:5: error: (near initialization for ‘ctlidstr’)
libavcodec/libvpxenc.c:109:6: error: ‘VP8E_USE_REFERENCE’ undeclared here (not in a function)
[VP8E_USE_REFERENCE] = "VP8E_USE_REFERENCE",
^
libavcodec/libvpxenc.c:109:5: error: array index in initializer not of integer type
[VP8E_USE_REFERENCE] = "VP8E_USE_REFERENCE",
^
libavcodec/libvpxenc.c:109:5: error: (near initialization for ‘ctlidstr’)
make: *** [libavcodec/libvpxenc.o] Error 1
我认为它最近对libvpx存储库进行了一些更改。 那么,有没有人有任何关于我应该如何解决这个问题的提示?
答案 0 :(得分:5)
票证:https://trac.ffmpeg.org/ticket/4956
它已在提交6540fe04a3f9a11ba7084a49b3ee5fa2fc5b32ab上修复。
获取git
主人,而不是2.8版本。