39
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[FFmpeg] ライブラリ全部入り

Last updated at Posted at 2015-09-24

ffmpeg 全部入り

5年くらい前に仕事でFFmpegに出会って以来、公私ともどもずっとお世話になっているので、そろそろ本気出して出来る限り多くのライブラリをリンクさせようと思ったのが9月初旬。

その結果わかったことは、めっちゃ時間かかるということでした。

まだ終わってませんが、本日(9/24)いったん投稿。

共通の処理

ffmpeg: error while loading shared libraries: libfaac.so.0: cannot open shared object file: No such file or directory のように、ライブラリが見つからないと言われたら

$ ldd /usr/local/bin/ffmpeg

で調べたのち、ld.so.confを編集し再読み込み

/etc/ld.so.conf
# vi /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib

# ldconfig -v

ffmpegconfigureでつまずいたら、config.logを確認して原因を調査する。

--enable-avisynth

windowsビルドする場合は入れます。でもAvisynth 2.6になってるので注意!

--enable-cuda

--enable-chromaprint

$ wget https://bitbucket.org/acoustid/chromaprint/downloads/chromaprint-1.3.1.tar.gz
$ tar zxvf chromaprint-1.3.1.tar.gz
$ cd chromaprint-1.3.1
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local .
$ make -j4

Linking CXX shared library libchromaprint.so
[ 50%] Built target chromaprint_p
/usr/bin/ld: /usr/local/lib/libavcodec.a(dct.o): relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libavcodec.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [src/libchromaprint.so.1.3.0] Error 1
make[1]: *** [src/CMakeFiles/chromaprint.dir/all] Error 2
make: *** [all] Error 2

--enable-fontconfig

# yum install fontconfig fontconfig-devel

--enable-frei0r

$ git clone git://code.dyne.org/frei0r.git
$ cd frei0r
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install 

--enable-gnutls (未完)

--enable-ladspa

SDL2

SDL version 2.0.3 (stable)

$ git clone https://github.com/swh/ladspa.git
$ cd ladspa
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install 

--enable-libaacplus(未完)

FFTW

fftw
# yum install fftw fftw-devel fftw-static
libaacplus
$ wget http://tipok.org.ua/downloads/media/aacplus/libaacplus/libaacplus-2.0.2.tar.gz
$ tar zxvf libaacplus-2.0.2.tar.gz
$ cd libaacplus-2.0.2
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
sbr.h:165: error: expected specifier-qualifier-list before ‘SBR_TON_CORR_EST’

--enable-libass

libass
$ git clone https://github.com/libass/libass.git
$ cd libass
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
checking for FRIBIDI... configure: error: Package requirements (fribidi >= 0.19.0) were not met:

No package 'fribidi' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables FRIBIDI_CFLAGS
and FRIBIDI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

fribidi

fribidi
$ wget http://fribidi.org/download/fribidi-0.19.7.tar.bz2
$ tar jxvf fribidi-0.19.7.tar.bz2
$ cd fribidi-0.19.7
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install
libass
$ cd libass
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libbluray

libudfread

libudfread
$ git clone git://git.videolan.org/libudfread.git
$ cd libudfread
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install
libbluray
$ git clone git://git.videolan.org/libbluray.git
$ cd libbluray
$ cp -r libudfread/src libbluray/contrib/libudfread/src
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static --enable-udf --disable-bdjava
$ make
# make install

--enable-libbs2b

# yum install libbs2b libbs2b-devel

--enable-libcaca

# yum install libcaca libcaca-devel

--enable-libcelt

# yum install celt celt-devel

ERROR: libcelt must be installed and version must be >= 0.11.0.

# yum erase celt celt-devel
$ git clone https://git.xiph.org/celt.git
$ cd celt
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libdc1394

$ git clone git://libdc1394.git.sourceforge.net/gitroot/libdc1394/libdc1394/
$ cd libdc1394/libdc1394
$ autoreconf -i
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libfaac

$ wget http://downloads.sourceforge.net/faac/faac-1.28.tar.bz2
$ tar jxvf faac-1.28.tar.bz2
$ cd faac-1.28
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make

mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’

$ emacs ./common/mp4v2/mpeg4ip.h

lines 126
- char *strcasestr(const char *haystack, const char *needle);
+ //char *strcasestr(const char *haystack, const char *needle);

$ make
# make install

--enable-libfdk-aac

$ git clone https://github.com/mstorsjo/fdk-aac
$ cd fdk-aac
$ ./autogen.sh
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libflite (未完)

$ wget http://www.speech.cs.cmu.edu/flite/packed/flite-1.4/flite-1.4-release.tar.bz2
$ tar jxvf flite-1.4-release.tar.bz2
$ cd flite-1.4-release
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
mkdir: cannot create directory `shared_os': File exists
make[1]: *** [../build/x86_64-linux-gnu/lib/libflite_cmu_time_awb.so] Error 1
make[1]: *** Waiting for unfinished jobs....
mkdir: cannot create directory `shared_os': File exists
make[1]: *** [../build/x86_64-linux-gnu/lib/libflite_cmu_us_slt.so] Error 1
make: *** [build/x86_64-linux-gnu/obj//.make_build_dirs] Error 2

--enable-libfreetype

$ git clone git://git.sv.nongnu.org/freetype/freetype2.git
$ cd freetype2
$ sh autogen.sh
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libfribidi

--enable-libass参照

--enable-libgme

$ wget https://game-music-emu.googlecode.com/files/game-music-emu-0.6.0.tar.bz2
$ tar jxvf game-music-emu-0.6.0.tar.bz2
$ cd game-music-emu-0.6.0
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local .
$ make
# make install

--enable-libgsm

$ wget http://www.quut.com/gsm/gsm-1.0.14.tar.gz
$ tar zxvf gsm-1.0.14.tar.gz
$ cd gsm-1.0-pl14/
$ make
# cp lib/libgsm.a /usr/local/lib
# cp inc/gsm.h /usr/local/include

--enable-libiec61883

libiec61883
$ git clone git://dennedy.org/libiec61883.git
$ cd libiec61883
$ ./configure --prefix=/usr/local --enable-shared --enable-static
checking for LIBRAW1394... configure: error: Package requirements (libraw1394 >= 1.2.1) were not met:

No package 'libraw1394' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBRAW1394_CFLAGS
and LIBRAW1394_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

libraw1394

libraw1394
$ git clone git://dennedy.org/libraw1394.git
$ cd libraw1394
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

/usr/bin/ld: cannot find -lavc1394

libavc1394
$ svn checkout http://svn.code.sf.net/p/libavc1394/code/trunk libavc1394
$ cd libavc1394/libavc1394
$ sh bootstrap
$ --prefix=/usr/local --enable-shared --enable-static
$ make
# make install
libiec61883
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libilbc

$ git clone https://github.com/TimothyGu/libilbc.git
$ cd libilbc
$ autoreconf -i
$ make
# make install

--enable-libkvazaar

$ git clone https://github.com/ultravideo/kvazaar.git
$ cd kvazaar
$ cd src
$ export CC=gcc

$ make
cc1: error: unrecognized command line option "-fno-lto"
make: *** [strategies/sse2/picture-sse2.o] Error 1
make: *** Waiting for unfinished jobs....

$ export CC=clang
/usr/bin/ld: cannot find -lgcc_s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [kvazaar] Error 1
make: *** Waiting for unfinished jobs....

$ export CC=gcc
$ make
# make install

--enable-libmfx (未完)

$ git clone https://github.com/lu-zero/mfx_dispatch.git
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install
ffmpeg/config.log
gcc -Wl,--as-needed -Wl,-z,noexecstack -I/usr/local/include -L/usr/local/lib -o /tmp/ffconf.KwrAwxCz /tmp/ffconf.qW3Nk1pj.o -lmfx -lstdc++ -ldl -L/usr/local/lib -lkvazaar -lm -lrt -lilbc -lgsm -L/usr/local/lib -lfribidi -lglib-2.0 -L/usr/local/lib -lfreetype -lfontconfig -L/usr/local/lib -lfdk-aac -lfaac -lcaca -lcelt0 -lcelt0 -lbs2b -L/usr/local/lib -lass -lraw1394 -lavc1394 -lrom1394 -liec61883 -lm -lz -pthread -lrt
/usr/local/lib/libmfx.so: undefined reference to `mfx_allocate_va'
/usr/local/lib/libmfx.so: undefined reference to `mfx_deallocate_va'
collect2: ld returned 1 exit status
ERROR: libmfx not found using pkg-config
libmfx.so
$ objdump -S /usr/local/lib/libmfx.so | grep mfx_allocate_va
0000000000006110 <mfx_allocate_va@plt>:
        void *handle = mfx_allocate_va(session);
    6d00:       e8 0b f4 ff ff          callq  6110 <mfx_allocate_va@plt>

$ objdump -S /usr/local/lib/libmfx.so | grep mfx_deallocate_va
0000000000006240 <mfx_deallocate_va@plt>:
                mfx_deallocate_va(pHandle->internal_hwctx);
    85dd:       e8 5e dc ff ff          callq  6240 <mfx_deallocate_va@plt>


$ pkg-config --list-all | grep libmfx
libmfx                libmfx - Intel Media SDK Dispatched static library

--enable-libmodplug

$ git clone git://git.code.sf.net/p/modplug-xmms/git modplug-xmms-git
$ cd modplug-xmms-git/libmodplug
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libmp3lame

$ wget http://jaist.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
$ tar zxvf lame-3.99.5.tar.gz
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libnut (保留)

--enable-libopencore-amrnb, --enable-libopencore-amrwb

$ wget http://jaist.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.3.tar.gz
$ tar zxvf opencore-amr-0.1.3.tar.gz
$ cd opencore-amr-0.1.3
$ ./configure --prefix=/usr/local --enable-shared --enable-static --enable-amrnb-encoder --enable-amrnb-decoder
$ make
# make install

--enable-libopencv

# yum install opencv-devel

--enable-libopenh264

$ git clone https://github.com/cisco/openh264.git
$ cd openh264
$ make
make: nasm: Command not found
make: *** [codec/common/x86/cpuid.o] Error 127
make: *** Waiting for unfinished jobs....

# yum install nasm

$ make
# make install

/usr/localにインストールされます

--enable-libopenjpeg

# yum install openjpeg openjpeg-devel openjpeg-libs

--enable-libopus

$ git clone https://git.xiph.org/opus.git
$ cd opus
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static --enable-custom-modes --enable-float-approx --enable-intrinsics --enable-assertions --enable-fuzzing
$ make
# make install

--enable-libpulse(保留)

libpulse
$ git clone http://anongit.freedesktop.org/git/pulseaudio/pulseaudio.git
$ cd pulseaudio
$ ./bootstrap.sh
./bootstrap.sh: line 46: intltoolize: command not found

# yum install intltool

$ ./bootstrap.sh
autopoint: *** The AM_GNU_GETTEXT_VERSION declaration in your configure.ac file requires the infrastructure from gettext-0.18.1 but this version is older. Please upgrade to gettext-0.18.1 or newer.

$ gettext --version
gettext (GNU gettext-runtime) 0.17

gettext のアップデートはちょっとやだな~
/usr/localにインストールする

gettext
$ wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.6.tar.gz
$ tar zxvf gettext-0.19.6.tar.gz
$ cd gettext
$ ./configure --prefix=/usr/local
$ make
# make install

インストール保留

libpulse
$ ./bootstrap.sh
configure.ac:374: error: Libtool version 2.4 or higher is required

インストール保留

Libtool

libtool
$ git clone git://git.savannah.gnu.org/libtool.git
$ ./bootstrap
bootstrap:   error: Prerequisite 'help2man' not found. Please install it, or
bootstrap:          'export HELP2MAN=/path/to/help2man'.
bootstrap:   error: Prerequisite 'makeinfo' not found. Please install it, or
bootstrap:          'export MAKEINFO=/path/to/makeinfo'.
bootstrap:   error: HACKING explains how to obtain these prerequisite programs:
bootstrap:          Program    Min_version Homepage
bootstrap:          -----------------------------------------------------------
bootstrap:          help2man   1.29        http://www.gnu.org/s/help2man
bootstrap:          make       3.81        http://www.gnu.org/s/make
bootstrap:          makeinfo   4.8         http://www.gnu.org/s/texinfo
bootstrap:          xz         4.999.8beta http://tukaani.org/xz
bootstrap:          autoconf   2.62        http://www.gnu.org/s/autoconf
bootstrap:          automake   1.11.1      http://www.gnu.org/s/automake
bootstrap:          -----------------------------------------------------------

help2man, texinfo

help2man,texinfo
# yum install help2man texinfo
libtool
# yum erase libtool
$ ./bootstrap
$ ./configure --prefix=/usr
$ make
# make install
libpulse
$ ./bootstrap.sh
./configure: line 9408: syntax error near unexpected token `2.4'
./configure: line 9408: `LT_PREREQ(2.4)'

インストール保留

--enable-libquvi(未完)

$ git clone https://github.com/mogaal/libquvi.git
$ cd libquvi
$ ./configure --prefix=/usr/local --enable-shared --enable-static
checking for a2x... no
configure: error: a2x is required to create man pages when building from git

# yum install asciidoc
$ ./configure --prefix=/usr/local --enable-shared --enable-static
configure: error: Package requirements (lua-5.1 >= 5.1) were not met:

No package 'lua-5.1' found

# yum install lua-devel
$ ./configure --prefix=/usr/local --enable-shared --enable-static
checking for libproxy... no
configure: error: Package requirements (libproxy-1.0 >= 0.3.1) were not met:

No package 'libproxy-1.0' found

# yum install libproxy-devel
Removing:
 libproxy-devel         x86_64         0.3.0-10.el6         base         3.6 k

NG

--enable-librtmp

$ git clone git://git.ffmpeg.org/rtmpdump
$ cd rtmpdump
$ cd librtmp
$ vi Makefile /* 必要あれば */
$ make
# make install

--enable-libschroedinger

libschroedinger
$ wget http://diracvideo.org/download/schroedinger/schroedinger-1.0.11.tar.gz
$ tar zxvf schroedinger-1.0.11.tar.gz
$ ./configure --prefix=/usr/local --enable-shared --enable-static
checking for ORC... no
configure: error: orc-0.4 >= 0.4.16 is required

Orc

orc
$ git clone http://anongit.freedesktop.org/git/gstreamer/orc.git
$ cd orc
$ ./autogen.sh
configure.ac:1: error: Autoconf version 2.68 or higher is required

autoconf

autoconf
$ wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
$ tar zxvf autoconf-latest.tar.gz
$ cd autoconf-2.69
$ ./configure --prefix=/usr/local
$ make
# make install
orc
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static -disable-gtk-doc
$ make
# make install
libschroedinger
$ export LDFLAGS='-L/usr/local/lib'
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

liborc.soがうまくリンクできないときは# ldconfig -vを実行する

--enable-libshine(保留)

$ wget http://jaist.dl.sourceforge.net/project/libshine-fxp/libshine-fxp/2007-01-04/libshine-fxp_20070104.tgz
$ tar zxvf libshine-fxp_20070104.tgz
$ cd libshine-fxp
$ cp Makefile-generic Makefile
$ make
gcc: L3loop.o: No such file or directory

$ make
/usr/bin/ld: cannot find -lgcc_s

64bitビルドができないっぽいので、保留

--enable-libsmbclient

# yum install libsmbclient libsmbclient-devel

--enable-libsnappy

$ git clone https://github.com/google/snappy.git
$ snappy
$ ./autogen.sh
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libsoxr

$ git clone http://git.code.sf.net/p/soxr/code soxr
$ cd soxr
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
$ make
# make install

--enable-libspeex

$ git clone http://git.xiph.org/speex.git/
$ cd speex
$ ./autoge.sh
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libssh

# yum install libssh libssh-devel
Dependencies Resolved

================================================================================
 Package               Arch            Version              Repository     Size
================================================================================
Installing:
 libssh                x86_64          0.5.5-4.el6          epel          121 k
 libssh-devel          x86_64          0.5.5-4.el6          epel          178 k

Transaction Summary
================================================================================
Install       2 Package(s)

yum だと古いですね。。sshとかは新しいほうがいい気がする。

$ git clone git://git.libssh.org/projects/libssh.git
$ cd libssh
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIC=/usr/local ..
$ make
# make install

--enable-libstagefright-h(保留)

--enable-libtheora

$ git clone https://git.xiph.org/theora.git
$ cd theora
$ ./autogen
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libtwolame

$ git clone https://github.com/njh/twolame.git
$ cd twolama
$ ./autogen.sh
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libutvideo(未完)

$ git clone https://github.com/qyot27/libutvideo.git

--enable-libv4l2

$ git clone https://github.com/koradlow/v4l2-rds-ctl.git
$ cd v4l2-rds-ctl
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

ffmpeg configure error : libv4l2 not found pkg-config

--enable-libvidstab

$ git clone https://github.com/georgmartius/vid.stab.git
$ cd vid.stab
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local
$ make
# make install

--enable-libvo-aacenc

$ git clone http://git.code.sf.net/p/opencore-amr/vo-aacenc vo-aacenc 
$ cd vo-aacenc
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libvo-amrwbenc

$ git clone http://git.code.sf.net/p/opencore-amr/vo-amrwbenc vo-amrwbenc
$ cd vo-amrwbenc
$ autoreconf -i
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libvorbis

$ git clone https://git.xiph.org/vorbis.git
$ cd vorbis
$ ./autogen.sh
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libvpx

$ git clone https://chromium.googlesource.com/webm/libvpx
$ cd libvpx
$ ./configure --prefix=/usr/local --enable-shared --enable-static --enable-vp8 --enable-vp9 --enable-vp10
$ make
# make install

--enable-libwavpack

$ wget http://www.wavpack.com/wavpack-4.75.0.tar.bz2
$ tar jxvf wavpack-4.75.0.tar.bz2
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libwebp

$ wget http://downloads.webmproject.org/releases/webp/libwebp-0.4.3.tar.gz
$ tar zxvf libwebp-0.4.3.tar.gz
$ cd libwebp-0.4.3
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libx264

$ git clone git://git.videolan.org/x264.git
$ cd x264
$ ./configure --prefix=/usr/local --enable-shared --enable-static --disable-ffms
$ make
x264.c: In function ‘print_csp_names’:
x264.c:445: error: variable ‘i’ has initializer but incomplete type
x264.c:445: error: storage size of ‘i’ isn’t known
x264.c:445: error: ‘enum PixelFormat’ declared in ‘for’ loop initial declaration
x264.c:445: warning: unused variable ‘i’
make: *** [x264.o] Error 1
make: *** Waiting for unfinished jobs....
x264.c
445 lines
-    for( enum PixelFormat i = AV_PIX_FMT_NONE+1; i < AV_PIX_FMT_NB; i++ )
+     for( int i = AV_PIX_FMT_NONE+1; i < AV_PIX_FMT_NB; i++ )
libx264
$ make
# make install

--enable-libx265

$ hg clone http://hg.videolan.org/x265
$ cd x265
$ cd build/linux
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local ../../source
$ make
# make install

--enable-libxavs

$ svn co https://svn.code.sf.net/p/xavs/code/trunk/ libxavs
$ cd libxavs
$ ./configure --prefix=/usr/local
$ make
# make install

--enable-libxcb

libxcb
$ wget http://xcb.freedesktop.org/dist/libxcb-1.11.tar.gz
$ tar zxvf libxcb-1.11.tar.gz
$ ./configure --prefix=/usr/local --enable-shared --enable-static
configure: error: Package requirements (xcb-proto >= 1.11) were not met:
xcb-proto
$ wget http://xcb.freedesktop.org/dist/xcb-proto-1.11.tar.bz2
$ tar jxvf xcb-proto-1.11.tar.bz2
$ ./configure --prefix=/usr/local
$ make
# make install
libxcb
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

ffmpegのビルドに失敗するようになります。。調査中
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/libX11.so: undefined reference to xcb_poll_for_reply64' /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/libX11.so: undefined reference to xcb_wait_for_reply64'
collect2: ld returned 1 exit status
make: *** [ffmpeg_g] Error 1

--enable-libxcb-shm

libxcbと一緒にインストールされます

--enable-libxcb-xfixes

libxcbと一緒にインストールされます

--enable-libxcb-shape

libxcbと一緒にインストールされます

--enable-libxvid

$ svn co http://svn.xvid.org/trunk --username anonymous xvid
$ cd xvid/xvidcore/build/generic
$ ./bootstrap
$ ./configure --prefix=/usr/local
$ make
# make install

--enable-libzmq

libzmq
$ git clone https://github.com/zeromq/libzmq.git
$ cd libzmq
$ ./autogen.sh
$ ./configure --prefix=/usr/local --enable-shared --enable-static
checking for sodium... configure: error: Package requirements (libsodium) were not met:

No package 'libsodium' found

libsodium

libsodium
$ git clone https://github.com/jedisct1/libsodium.git
$ cd libsodium
$ ./autogen.sh
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install
libzmq
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-libzvbi

$ wget http://jaist.dl.sourceforge.net/project/zapping/zvbi/0.2.35/zvbi-0.2.35.tar.bz2
$ tar jxvf zvbi-0.2.35.tar.bz2
$ cd zvbi-0.2.35
$ ./configure --prefix=/usr/local --enable-shared --enable-static
$ make
# make install

--enable-decklink

Desktop Video 10.5 SDK ダウンロード (2015年9月25日現在の最新版)

decklink
$ unzip Blackmagic_DeckLink_SDK_10.5.zip
# cp Blackmagic\ DeckLink\ SDK\ 10.5/Linux/include/*.* /usr/local/include

たぶん、DeckLinkAPI.hDeckLinkAPIDispatch.cppで足りると思いますが
とりあえず全部コピーしてffmpegをビルド。

--enable-mmal(未完)

$ git clone https://github.com/raspberrypi/userland.git
$ cd userland

--enable-nvenc

https://developer.nvidia.com/nvidia-video-codec-sdk
https://developer.nvidia.com/cuda-downloads

$ wget http://developer.download.nvidia.com/compute/nvenc/v5.0/nvenc_5.0.1_sdk.zip
$ unzip nvenc_5.0.1_sdk.zip
$ cd nvenc_5.0.1_sdk
# cp common/inc/NvEncoderAPI.h /usr/local/include

--enable-openal

$ git clone git://repo.or.cz/openal-soft.git
$ cd openal-soft
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local .
$ make
Building C object CMakeFiles/alffplay.dir/examples/alffplay.c.o
/path/to/openal-soft/examples/alffplay.c: In function ‘audio_thread’:
/path/to/openal-soft/examples/alffplay.c:689: warning: signed and unsigned type in conditional expression
/path/to/openal-soft/examples/alffplay.c: In function ‘update_picture’:
/path/to/openal-soft/examples/alffplay.c:945: error: ‘PIX_FMT_YUV420P’ undeclared (first use in this function)
/path/to/openal-soft/examples/alffplay.c:945: error: (Each undeclared identifier is reported only once
/path/to/openal-soft/examples/alffplay.c:945: error: for each function it appears in.)
make[2]: *** [CMakeFiles/alffplay.dir/examples/alffplay.c.o] Error 1
make[1]: *** [CMakeFiles/alffplay.dir/all] Error 2
make: *** [all] Error 2

/* エラーするけどライブラリはできてる */

$ ls -la libopenal*
lrwxrwxrwx 1 **** ****      14 Sep 30 23:15 libopenal.so -> libopenal.so.1
lrwxrwxrwx 1 **** ****      19 Sep 30 23:15 libopenal.so.1 -> libopenal.so.1.16.0
-rwxr-xr-x 1 **** **** 1951889 Sep 30 23:15 libopenal.so.1.16.0

/* make install できないので手動コピー */

# cp -df libopenal* /usr/local/lib
# cp -r include/AL /usr/local/include

--enable-opencl(保留)

ビデオカードが何処製か調べる。
https://ja.wikipedia.org/wiki/OpenCL#OpenCL.E9.96.8B.E7.99.BA.E7.92.B0.E5.A2.83

# yum install pciutils
# lspci | grep VGA
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter

--enable-opengl(保留)

ビデオカードが何処製か調べる。
https://www.opengl.org/wiki/Getting_Started#Linux

# yum install pciutils
# lspci | grep VGA
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter

--enable-openssl

SSLの類は新しい方がよいでしょう。
https://www.openssl.org/

$ git clone git://git.openssl.org/openssl.git
$ cd openssl
$ ./config --prefix=/usr/local shared
$ make
# make install

--enable-x11grab

特に無し

ビルド結果

ビルド結果を投稿しました。

39
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?