[Develope]/Multimedia

ffmpeg 설치

하늘을닮은호수M 2012. 1. 27. 10:13
반응형

[DEPENDENCIES]
ffmpeg 

-+-x264 -+- yasm
  |
  +-xvid
  |
  +-faac
  |
  +-faad
  |
  +-amr-nb
  |
  +-amr-wb
  |
  +-lamemp3


[INSTALL]
X264 Library

./configure --prefix=/home/sunsson/work/lib --includedir=/home/sunsson/work/include --libdir=/home/sunsson/work/lib --enable-shared => make => make install (root) 

가끔씩 isfinite() 때문에 컴파일이 안 되는 경우(sun-i386)가 있다.
이럴 경우에는 encoder/ratecontrol.c에 다음 MACRO를 정의한다.

// isfinite() comes with C99; fake version here in case compiler lacks it.
#ifndef isfinite
#define isfinite(x) (sizeof(x) == sizeof(float) ? isfinitef(x) : isfinited(x))
#define isfinitef(x) ((x) >= -FLT_MAX && (x) <= FLT_MAX)        // NAN should fail this, yes?
#define isfinited(x) ((x) >= -DBL_MAX && (x) <= DBL_MAX)
#endif // not isfinite

X265 Library

$> cd ~/ffmpeg_sources/x265/build/linux

$> cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source

$> make

$> make install

faac Library

bootstrap => ./configure --prefix=/home/sunsson/work/lib --includedir=/home/sunsson/work/include --libdir=/home/sunsson/work/lib => make => make install

faad2 Library

bootstrap => ./configure --prefix=/home/sunsson/work/lib --includedir=/home/sunsson/work/include/ --libdir=/home/sunsson/work/lib => make => make install

amrnb Library

./configure --prefix=/home/sunsson/work/lib --includedir=/home/sunsson/work/include/ --libdir=/home/sunsson/work/lib => make => make install

amrwb Library

./configure --prefix=/home/sunsson/work/lib --includedir=/home/sunsson/work/include/ --libdir=/home/sunsson/work/lib => make => make install

lamemp3 Library

./configure --prefix=/home/sunsson/work/lib --includedir=/home/sunsson/work//include/ --libdir=/home/sunsson/work/lib => make => make install


FFMPEG

./configure --enable-libx264 --enable-gpl --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libamr-nb --enable-libamr-wb --prefix=/home/sunsson/work/lib => make => make install (root)


Enabled decoders:
aasc ac3 adpcm_4xm adpcm_adx adpcm_ct adpcm_ea adpcm_ea_r1 adpcm_ea_r2 adpcm_ea_r3 adpcm_ea_xas adpcm_g726 adpcm_ima_amv adpcm_ima_dk3 adpcm_ima_dk4 adpcm_ima_ea_eacs adpcm_ima_ea_sead adpcm_ima_qt adpcm_ima_smjpeg adpcm_ima_wav adpcm_ima_ws adpcm_ms adpcm_sbpro_2 adpcm_sbpro_3 adpcm_sbpro_4 adpcm_swf adpcm_thp adpcm_xa adpcm_yamaha alac amv ape asv1 asv2 atrac3 avs bethsoftvid bmp c93 cavs cinepak cljr cook cscd cyuv dca dnxhd dsicinaudio dsicinvideo dvbsub dvdsub dvvideo dxa eightbps ffv1 ffvhuff flac flashsv flic flv fourxm fraps gif h261 h263 h263i h264 huffyuv idcin imc indeo2 indeo3 interplay_dpcm interplay_video jpegls kmvc libamr_nb libamr_wb libfaad loco mace3 mace6 mdec mjpeg mjpegb mmvideo mp2 mp3 mp3adu mp3on4 mpc7 mpc8 mpeg1video mpeg2video mpeg4 mpeg4aac mpegvideo msmpeg4v1 msmpeg4v2 msmpeg4v3 msrle msvideo1 mszh nellymoser nuv pcm_alaw pcm_mulaw pcm_s16be pcm_s16le pcm_s16le_planar pcm_s24be pcm_s24daud pcm_s24le pcm_s32be pcm_s32le pcm_s8 pcm_u16be pcm_u16le pcm_u24be pcm_u24le pcm_u32be pcm_u32le pcm_u8 pcm_zork png ptx qdm2 qdraw qpeg qtrle ra_144 ra_288 rawvideo roq roq_dpcm rpza rv10 rv20 sgi shorten smackaud smacker smc snow sol_dpcm sonic sp5x svq1 svq3 targa theora thp tiertexseqvideo tiff truemotion1 truemotion2 truespeech tscc tta txd ulti vb vc1 vcr1 vmdaudio vmdvideo vmnc vorbis vp3 vp5 vp6 vp6a vp6f vqa wavpack wmav1 wmav2 wmv1 wmv2 wmv3 wnv1 ws_snd1 xan_dpcm xan_wc3 xl xsub zlib zmbv
Enabled encoders:
ac3 adpcm_adx adpcm_g726 adpcm_ima_wav adpcm_ms adpcm_swf adpcm_yamaha asv1 asv2 bmp dnxhd dvbsub dvdsub dvvideo ffv1 ffvhuff flac flashsv flv gif h261 h263 h263p huffyuv jpegls libamr_nb libamr_wb libfaac libmp3lame libx264 ljpeg mjpeg mp2 mpeg1video mpeg2video mpeg4 msmpeg4v1 msmpeg4v2 msmpeg4v3 pam pbm pcm_alaw pcm_mulaw pcm_s16be pcm_s16le pcm_s24be pcm_s24daud pcm_s24le pcm_s32be pcm_s32le pcm_s8 pcm_u16be pcm_u16le pcm_u24be pcm_u24le pcm_u32be pcm_u32le pcm_u8 pcm_zork pgm pgmyuv png ppm qtrle rawvideo roq roq_dpcm rv10 rv20 sgi snow sonic sonic_ls svq1 targa tiff vorbis wmav1 wmav2 wmv1 wmv2 zlib zmbv
Enabled parsers:
aac ac3 cavsvideo dca dvbsub dvdsub h261 h263 h264 mjpeg mlp mpeg4video mpegaudio mpegvideo pnm vc1
Enabled demuxers:
aac ac3 aiff amr apc ape asf au avi avs bethsoftvid c93 daud dsicin dts dv dxa ea ea_cdata ffm flac flic flv fourxm gif gxf h261 h263 h264 idcin image2 image2pipe ingenient ipmovie m4v matroska mjpeg mm mmf mov mp3 mpc mpc8 mpegps mpegts mpegtsraw mpegvideo mtv mxf nsv nut nuv ogg pcm_alaw pcm_mulaw pcm_s16be pcm_s16le pcm_s8 pcm_u16be pcm_u16le pcm_u8 rawvideo redir rm roq rtsp sdp segafilm shorten siff smacker sol str swf thp tiertexseq tta txd vc1 vmd voc wav wc3 wsaud wsvqa wv yuv4mpegpipe
Enabled muxers:
ac3 adts aiff amr asf asf_stream au avi crc dv ffm flac flv framecrc gif gxf h261 h263 h264 image2 image2pipe m4v matroska matroska_audio mjpeg mmf mov mp2 mp3 mp4 mpeg1system mpeg1vcd mpeg1video mpeg2dvd mpeg2svcd mpeg2video mpeg2vob mpegts mpjpeg null nut ogg pcm_alaw pcm_mulaw pcm_s16be pcm_s16le pcm_s8 pcm_u16be pcm_u16le pcm_u8 psp rawvideo rm roq rtp swf tg2 tgp voc wav yuv4mpegpipe
Enabled protocols:
file http pipe rtp tcp udp
Enabled bsfs:
dump_extradata h264_mp4toannexb imx_dump_header mjpega_dump_header mp3_header_compress mp3_header_decompress noise remove_extradata
Enabled indevs:
dv1394_demuxer oss_demuxer v4l2_demuxer v4l_demuxer
Enabled outdevs:
oss_muxer


[Current State]
외부 라이브러리 x264, amrnb, amrwb, faac, faad2, lamemp3 설치 
ffmpeg은 외부 라이브러리와 연동되도록 수정


[AAC 관련 정리]
faac library - aac encoding 지원(Main, LC, LTP)
faad2 library - aac decoding 지원(Main, LC, LTP, SBR, PS)

반응형

'[Develope] > Multimedia' 카테고리의 다른 글

How to deploy RTMP-Push  (0) 2020.10.20
Wowza + 360 Giroptic Cam 연결  (0) 2017.02.28
Gstreamer  (0) 2008.08.08
Getting Started with Adobe Flash Media Server 3  (0) 2008.06.09
Darwin Streaming Server  (0) 2007.12.20