平衡点


2008/09/25

_ 某所に ffmpeg を install ちう.

root 権限が無いので, ビルドしまくり.コーデックが沢山あって面倒だにゃぁ. イロイロ試行錯誤していたら, こんなエントリが.

なるほどー.

というわけで, ちょっと弄って某所で仕込み. ほとんど全て --prefix=${HOME} みたいなのをつければ良いだけ, かと思いきや, CFLAGS で -L${HOME}/lib -I${HOME}/include みたいなが必要(あたりまえ).

#-------------------------------------------------------------
# config
#-------------------------------------------------------------
INSTALL_PREFIX=${HOME}
ADD_PATH=${INSTALL_PREFIX}/bin
#-------------------------------------------------------------
# Version
#-------------------------------------------------------------
A52_SRC=a52dec-0.7.4
DIRAC_SRC=dirac-0.10.0
FAAC_SRC=faac-1.26
FAAD_SRC=faad2-2.6.1
GSM_SRC=gsm-1.0.12
AMRNB_SRC=amrnb-7.0.0.2
AMRWB_SRC=amrwb-7.0.0.3
LAME_SRC=lame-3.97
YASM_SRC=yasm-0.7.1
OGG_SRC=libogg-1.1.3
VORVIS_SRC=libvorbis-1.2.0
XVID_SRC=xvidcore-1.1.3
#-------------------------------------------------------------
# main
#-------------------------------------------------------------
all: build-depend ffmpeg
build-depend: yasm a52 dirac faac faad gsm ogg amrnb amrwb mp3lame x264 nut theora vorbis xvid
clean: yasm-clean a52-clean dirac-clean faad-clean faac-clean gsm-clean ogg-clean amrnb-clean amrwb-clean mp3lame-clean x264-clean nut-clean theora-clean vorbis-clean xvid-clean
distclean: yasm-distclean a52-distclean dirac-distclean faac-distclean faad-distclean gsm-distclean ogg-distclean amrnb-distclean amrwb-distclean mp3lame-distclean x264-distclean nut-distclean theora-distclean vorbis-distclean xvid-distclean
#-------------------------------------------------------------
# ffmpeg
#-------------------------------------------------------------
ffmpeg: ffmpeg-build
ffmpeg-repos:
	@if [ ! -d $@ ]; then \
	  svn co svn://svn.mplayerhq.hu/ffmpeg/trunk $@ ;\
	fi ;\
	cd ffmpeg-repos && svn update
ffmpeg-build: ffmpeg-repos
	cd $< ;\
	export PATH=${PATH}:${ADD_PATH} ;\
	LDFLAGS="-L${INSTALL_PREFIX}/lib" \
	CFLAGS="-I${INSTALL_PREFIX}/include -L${INSTALL_PREFIX}/lib" \
	PKG_CONFIG_PATH=${INSTALL_PREFIX}/lib/pkgconfig \
	./configure --prefix=${INSTALL_PREFIX} \
	--enable-gpl \
	--enable-nonfree \
	--enable-postproc \
	--enable-avfilter \
	--enable-avfilter-lavf \
	--enable-liba52 \
	--enable-liba52bin \
	--enable-libamr-nb \
	--enable-libamr-wb \
	--enable-libdirac \
	--enable-libfaac \
	--enable-libfaad \
	--enable-libfaadbin \
	--enable-libgsm \
	--enable-libmp3lame \
	--enable-libnut \
	--enable-libtheora \
	--enable-libvorbis \
	--enable-libx264 \
	--enable-libxvid ;\
	make && make install
ffmpeg-clean:
	cd ffmpeg-repos ;\
	make clean
#-------------------------------------------------------------
# liba52
#-------------------------------------------------------------
a52: liba52.a
${A52_SRC}.tar.gz:
	@if [ ! -f $@ ]; then \
	  wget http://liba52.sourceforge.net/files/$@ ; \
	fi ;\
	tar xf $@
liba52.a: ${A52_SRC}.tar.gz
	cd ${A52_SRC} ;\
	./configure --prefix=${INSTALL_PREFIX} ;\
	make && make install
a52-clean:
	cd ${A52_SRC} && make distclean
a52-distclean:
	rm -rf ${A52_SRC}*
#-------------------------------------------------------------
# dirac
#-------------------------------------------------------------
dirac: libdirac_decoder.a
${DIRAC_SRC}.tar.gz:
	@if [ ! -f $@ ]; then \
	  wget http://downloads.sourceforge.net/dirac/$@ ;\
	fi ;\
	tar xf $@
libdirac_decoder.a: ${DIRAC_SRC}.tar.gz
	cd ${DIRAC_SRC} ;\
	./configure --prefix=${INSTALL_PREFIX} ;\
	make && make install
dirac-clean:
	cd ${DIRAC_SRC} && make clean
dirac-distclean:
	rm -rf ${DIRAC_SRC}*
#-------------------------------------------------------------
# faac
#-------------------------------------------------------------
faac: libfaac.a
${FAAC_SRC}.tar.gz:
	if [ ! -f $@ ]; then \
	  wget http://downloads.sourceforge.net/faac/$@ ; \
	fi ;\
	tar xf $@
libfaac.a: ${FAAC_SRC}.tar.gz
	cd faac &&./bootstrap ;\
	./configure --prefix=${INSTALL_PREFIX}  && make && make install
faac2-clean:
	cd faac && make clean
faac-distclean:
	rm -rf faac*
#-------------------------------------------------------------
# faad
#-------------------------------------------------------------
faad: libfaad.a
${FAAD_SRC}.tar.gz:
	if [ ! -f $@ ]; then \
	  wget http://downloads.sourceforge.net/faac/$@ ; \
	fi ;\
	tar xf $@
libfaad.a: ${FAAD_SRC}.tar.gz
	cd faad2 &&./bootstrap ;\
	./configure --prefix=${INSTALL_PREFIX}  && make && make install
faad-clean:
	cd faad2 && make clean
faad-distclean:
	rm -rf faad2*
#-------------------------------------------------------------
# gsm
#-------------------------------------------------------------
gsm: libgsm.a
${GSM_SRC}.tar.gz:
	if [ ! -f $@ ]; then \
	  wget http://kbs.cs.tu-berlin.de/~jutta/gsm/$@ ; \
	fi ;\
	tar xf $@
libgsm.a:  ${GSM_SRC}.tar.gz
	cd gsm-1.0-pl12 && make &&  \
	make install INSTALL_ROOT=${INSTALL_PREFIX} \
	GSM_INSTALL_LIB=${INSTALL_PREFIX}/lib \
	GSM_INSTALL_INC=${INSTALL_PREFIX}/include 
gsm-clean:
	cd gsm-1.0-pl12 && make clean
gsm-distclean:
	rm -rf gsm-1.0-pl12*
#-------------------------------------------------------------
# amrnb
#-------------------------------------------------------------
amrnb: libamrnb.a
${AMRNB_SRC}.tar.bz2:
	@if [ ! -f $@ ]; then \
	  wget http://ftp.penguin.cz/pub/users/utx/amr/$@ ;\
	fi ;\
	tar xf $@
libamrnb.a: ${AMRNB_SRC}.tar.bz2
	cd ${AMRNB_SRC} ;\
	./configure --prefix=${INSTALL_PREFIX}  && make && make install
amrnb-clean:
	cd ${AMRNB_SRC} && clean
amrnb-distclean:
	rm -rf ${AMRNB_SRC}*
#-------------------------------------------------------------
# abrwb
#-------------------------------------------------------------
amrwb: libamrwb.a
${AMRWB_SRC}.tar.bz2:
	@if [ ! -f $@ ]; then \
	  wget http://ftp.penguin.cz/pub/users/utx/amr/$@ ;\
	fi ;\
	tar xf $@
libamrwb.a:  ${AMRWB_SRC}.tar.bz2
	cd ${AMRWB_SRC} ;\
	./configure --prefix=${INSTALL_PREFIX}  && make && make install
amrwb-clean:
	cd ${AMRWB_SRC} && clean
amrwb-distclean:
	rm -rf ${AMRWB_SRC}*
#-------------------------------------------------------------
# mp3lame
#-------------------------------------------------------------
mp3lame: libmp3lame.a
${LAME_SRC}.tar.gz:
	@if [ ! -f $@ ]; then \
	  wget http://downloads.sourceforge.net/lame/$@ ;\
	fi ;\
	tar xf $@
libmp3lame.a: ${LAME_SRC}.tar.gz
	cd ${LAME_SRC} ;\
	./configure --prefix=${INSTALL_PREFIX}  && make && make install
mp3lame-clean:
	cd ${LAME_SRC} && make clean
mp3lame-distclean:
	rm -rf ${LAME_SRC}*
#-------------------------------------------------------------
# yasm
#-------------------------------------------------------------
yasm: ${YASM_SRC}
${YASM_SRC}.tar.gz:
	@if [ ! -f $@ ]; then \
	  wget http://www.tortall.net/projects/yasm/releases/$@ ; \
	fi ;
	tar xf $@
${YASM_SRC}: ${YASM_SRC}.tar.gz
	cd $@ ;\
	./configure --prefix=${INSTALL_PREFIX} && make && make install 
yasm-clean:
	cd ${YASM_SRC} && make clean
yasm-distclean:
	rm -rf ${YASM_SRC}*
#-------------------------------------------------------------
# x264
#-------------------------------------------------------------
x264: yasm libx264.a
x264-git:
	@if [ ! -d $@ ]; then \
	  git clone git://git.videolan.org/x264.git ; \
	  mv x264 $@ ; \
	fi ;\
	cd $@ && git pull
libx264.a: x264-git
	cd $< ;\
	export PATH=${PATH}:${ADD_PATH} ;\
	./configure --prefix=${INSTALL_PREFIX} \
	--enable-shared \
	--enable-pthread ;\
	make && make install
x264-clean:
	cd x264-git && make clean
x264-distclean:
	rm -rf x264-git
#-------------------------------------------------------------
# nut
#-------------------------------------------------------------
nut: libnut.a
libnut-svn:
	@if [ ! -d $@ ]; then \
	svn co svn://svn.mplayerhq.hu/nut/src/trunk $@ ;\
	fi ;\
	cd $@ && svn up
libnut.a: libnut-svn
	cd $< && make && make install PREFIX=${INSTALL_PREFIX}
nut-clean:
	cd libnut-svn && make clean
nut-distclean:
	rm -rf libnut-svn*
#-------------------------------------------------------------
# ogg
#-------------------------------------------------------------
ogg: libogg.a
${OGG_SRC}.tar.gz:
	@if [ ! -f $@ ]; then \
	  wget http://downloads.xiph.org/releases/ogg/$@ ;\
	fi ;\
	tar xvf $@

libogg.a: ${OGG_SRC}.tar.gz
	cd ${OGG_SRC} ;\
	./configure --prefix=${INSTALL_PREFIX}  && make && make install
ogg-clean:
	cd ${OGG_SRC} && make clean
ogg-distclean:
	rm -rf ${OGG_SRC}*
#-------------------------------------------------------------
# theora
#-------------------------------------------------------------
theora: ogg libtheora.a
theora-svn:
	@if [ ! -d $@ ]; then \
	  svn co http://svn.xiph.org/trunk/theora $@ ;\
	fi ;\
	cd $@ && svn up
libtheora.a: theora-svn
	cd $< ;\
	./autogen.sh ;\
	./configure \
	--prefix=${INSTALL_PREFIX} \
	--with-ogg=${INSTALL_PREFIX} ;\
	make && make install
theora-clean:
	cd theora-svn && make clean
theora-distclean:
	rm -rf theora-svn*
#-------------------------------------------------------------
# vorbis
#-------------------------------------------------------------
vorbis: libvorbis.a
${VORVIS_SRC}.tar.gz:
	@if [ ! -f $@ ]; then \
	  wget http://downloads.xiph.org/releases/vorbis/$@ ; \
	fi ;\
	tar xf $@
libvorbis.a: ${VORVIS_SRC}.tar.gz
	cd ${VORVIS_SRC} ;\
	./configure --prefix=${INSTALL_PREFIX} && make && make install
vorbis-clean:
	cd ${VORVIS_SRC} && make clean
vorbis-distclean:
	rm -rf ${VORVIS_SRC}*
#-------------------------------------------------------------
# xvid
#-------------------------------------------------------------
xvid: yasm libxvidcore.4.a
${XVID_SRC}.tar.gz:
	@if [ ! -f $@ ]; then \
	  wget http://downloads.xvid.org/downloads/$@ ;\
	fi ;\
	tar xf $@
libxvidcore.4.a: ${XVID_SRC}.tar.gz
	cd ${XVID_SRC}/build/generic ;\
	./bootstrap.sh ;\
	export PATH=${PATH}:${ADD_PATH} ;\
	./configure --prefix=${INSTALL_PREFIX} ;\
	make && make install
xvid-clean:
	cd ${XVID_SRC}/build/generic && make clean
xvid-distclean:
	rm -rf ${XVID_SRC}*

やっつけだけど, とりあえず動いたから正義. 書いてから思ったけれど, distclean は結構危険ですな. typo していなくて良かった.

... icc でコンパイルすると高速になったりするんだろうか?


連絡先など
最近の日記
  • 2024/10/09
    • 1. Mastodon でのメール通知, というか Exim4 と Apparmor
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|10|
Back to Top ▲