우여곡절끝에 VLC를 컴파일 해서 samr / H.263 코덱으로 접속을 해도 에러는 나지 않도록 했는데..
RTSP 10초 timeout으로 플레이 까지는 하지 못한다.
도대체 VLC로 유튜브 플레이한 사람은.. 용자인가 -ㅁ-?
./configure --help
Input plugins:
--with-live555-tree=PATH live.com tree for static linking
--with-dv-raw1394=PATH libraw1394 headers and libraries
--with-dv-raw1394=PATH libraw1394 tree for static linking
--with-dv-avc1394=PATH libavc1394 headers and libraries
--with-dv-avc1394=PATH libavc1394 tree for static linking
--with-dvdread=PATH libdvdread headers and libraries
--with-dvdread-tree=PATH libdvdread tree for static linking
--with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)
--with-opencv-tree=PATH opencv tree for linking
--with-dvbpsi=PATH libdvbpsi headers and libraries
--with-dvbpsi-tree=PATH libdvbpsi tree for static linking
--with-v4l=PATH path to a v4l-enabled kernel tree
--with-v4l2=PATH path to a v4l2-enabled kernel tree
--with-videodev2=FILE Location of videodev2.h file (default /usr/include/linux/videodev2.h)
--with-dvb=PATH path to a dvb- and v4l2-enabled kernel tree
--with-ogg-tree=PATH ogg tree for static linking
--with-mod-tree=PATH mod tree for static linking
--with-gme-tree=PATH gme tree for static linking
Codec plugins:
--with-mad=PATH path to libmad
--with-mad-tree=PATH mad tree for static linking
--with-faad-tree=PATH faad tree for static linking
--with-twolame-tree=PATH twolame tree for static linking
--with-a52=PATH a52 headers and libraries
--with-a52-tree=PATH a52dec tree for static linking
--with-a52-fixed specify if liba52 has been compiled with fixed point support
--with-dca-tree=PATH libdca tree for static linking
--with-flac-tree=PATH flac tree for static linking
--with-libmpeg2-tree=PATH libmpeg2 tree for static linking
--with-vorbis-tree=PATH vorbis tree for static linking
--with-speex-tree=PATH speex tree for static linking
--with-tarkin-tree=PATH tarkin tree for static linking --with-x264-tree=PATH x264 tree for static linking
Video plugins:
--with-x use the X Window System
--with-sdl-config-path=PATH sdl-config path (default search in \$PATH)
--with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
e.g use as:
--with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)
--with-qte=PATH Qt Embedded headers and libraries
--with-directx=PATH Win32 DirectX headers
--with-directfb=PATH path to DirectFB headers and libraries
--with-ggi=PATH path to libggi
--with-caca-config-path=PATH caca-config path (default search in \$PATH)
vlc의 트리구조는 다음과 같은데
vlc-1.0.4
|-- autotools
|-- bin
|-- compat
|-- doc
|-- extras
|-- include
|-- libs
|-- m4
|-- modules
|-- po
|-- projects
|-- share
|-- src
`-- test
vlc/extras 에 plugin들을 다운로드 한 다음
./configure --with-x264=tree=./extras/x264
이런식으로 설정해주면 하위까지 같이 컴파일하게 된다.
문제는, samr은 이전에 설정해 준, opencore-amr 쪽에서 알아서 samr 코덱이 들어간듯.
이건 어떻게 분리해서 넣어야 하나..
아무튼, youtube + RTSP로 검색하다보니, xHTML이 빠져서 그런거 같은 느낌이 강하게 든다..
도대체 이넘은 또 어떻게 산을 넘어가야 하나?
YouTube launched its mobile site, YouTube Mobile on 15 June 2007. It is based on xHTML and uses 3GP videos with H263/AMR codec and RTSP streaming. It is available via a web interface at m.youtube.com or via YouTube's Mobile Java Application.
libopencore-amrnb 와 libopencore-amrwb 를 사용하려면 version3로 라이센스를 바꾸어야 한다.
(upgrade (L)GPL to version 3)
$ ./configure --help
Usage: configure [options]
Options: [defaults in brackets after descriptions]
Standard options:
--help print this message
--logfile=FILE log tests and output to FILE [config.err]
--disable-logging do not log configure debug information
--prefix=PREFIX install in PREFIX []
--bindir=DIR install binaries in DIR [PREFIX/bin]
--datadir=DIR install data files in DIR [PREFIX/share/ffmpeg]
--libdir=DIR install libs in DIR [PREFIX/lib]
--shlibdir=DIR install shared libs in DIR [PREFIX/lib]
--incdir=DIR install includes in DIR [PREFIX/include]
--mandir=DIR install man page in DIR [PREFIX/share/man]
Configuration options:
--disable-static do not build static libraries [no]
--enable-shared build shared libraries [no]
--enable-gpl allow use of GPL code, the resulting libs and binaries will be under GPL [no] --enable-version3 upgrade (L)GPL to version 3 [no]
--enable-nonfree allow use of nonfree code, the resulting libs and binaries will be unredistributable [no]
--disable-doc do not build documentation
--disable-ffmpeg disable ffmpeg build
--disable-ffplay disable ffplay build
--disable-ffserver disable ffserver build
--enable-postproc enable GPLed postprocessing support [no]
--enable-avfilter video filter support [no]
--enable-avfilter-lavf video filters dependent on avformat [no]
--enable-beosthreads use BeOS threads [no]
--enable-os2threads use OS/2 threads [no]
--enable-pthreads use pthreads [no]
--enable-w32threads use Win32 threads [no]
--enable-x11grab enable X11 grabbing [no]
--disable-network disable network support [no]
--disable-ipv6 disable IPv6 support [no]
--disable-mpegaudio-hp faster (but less accurate) MPEG audio decoding [no]
--enable-gray enable full grayscale support (slower color)
--disable-swscale-alpha disable alpha channel support in swscale
--disable-fastdiv disable table-based division
--enable-small optimize for size instead of speed
--disable-aandct disable AAN DCT code
--disable-fft disable FFT code
--disable-golomb disable Golomb code
--disable-lpc disable LPC code
--disable-mdct disable MDCT code
--disable-rdft disable RDFT code
--disable-vaapi disable VAAPI code
--disable-vdpau disable VDPAU code
--enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)
--enable-hardcoded-tables use hardcoded tables instead of runtime generation
--enable-memalign-hack emulate memalign, interferes with memory debuggers
--enable-beos-netserver enable BeOS netserver
--disable-encoder=NAME disable encoder NAME
--enable-encoder=NAME enable encoder NAME
--disable-encoders disable all encoders
--disable-decoder=NAME disable decoder NAME
--enable-decoder=NAME enable decoder NAME
--disable-decoders disable all decoders
--disable-hwaccel=NAME disable hwaccel NAME
--enable-hwaccel=NAME enable hwaccel NAME
--disable-hwaccels disable all hwaccels
--disable-muxer=NAME disable muxer NAME
--enable-muxer=NAME enable muxer NAME
--disable-muxers disable all muxers
--disable-demuxer=NAME disable demuxer NAME
--enable-demuxer=NAME enable demuxer NAME
--disable-demuxers disable all demuxers
--enable-parser=NAME enable parser NAME
--disable-parser=NAME disable parser NAME
--disable-parsers disable all parsers
--enable-bsf=NAME enable bitstream filter NAME
--disable-bsf=NAME disable bitstream filter NAME
--disable-bsfs disable all bitstream filters
--enable-protocol=NAME enable protocol NAME
--disable-protocol=NAME disable protocol NAME
--disable-protocols disable all protocols
--disable-indev=NAME disable input device NAME
--disable-outdev=NAME disable output device NAME
--disable-indevs disable input devices
--disable-outdevs disable output devices
--disable-devices disable all devices
--enable-filter=NAME enable filter NAME
--disable-filter=NAME disable filter NAME
--disable-filters disable all filters
--list-decoders show all available decoders
--list-encoders show all available encoders
--list-hwaccels show all available hardware accelerators
--list-muxers show all available muxers
--list-demuxers show all available demuxers
--list-parsers show all available parsers
--list-protocols show all available protocols
--list-bsfs show all available bitstream filters
--list-indevs show all available input devices
--list-outdevs show all available output devices
--list-filters show all available filters
External library support:
--enable-avisynth enable reading of AVISynth script files [no]
--enable-bzlib enable bzlib [autodetect] --enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]
--enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]
--enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 and libraw1394 [no]
--enable-libdirac enable Dirac support via libdirac [no]
--enable-libfaac enable FAAC support via libfaac [no]
--enable-libfaad enable FAAD support via libfaad [no]
--enable-libfaadbin open libfaad.so.0 at runtime [no]
--enable-libgsm enable GSM support via libgsm [no]
--enable-libmp3lame enable MP3 encoding via libmp3lame [no]
--enable-libnut enable NUT (de)muxing via libnut, native (de)muxer exists [no]
--enable-libopenjpeg enable JPEG 2000 decoding via OpenJPEG [no]
--enable-libschroedinger enable Dirac support via libschroedinger [no]
--enable-libspeex enable Speex decoding via libspeex [no]
--enable-libtheora enable Theora encoding via libtheora [no]
--enable-libvorbis enable Vorbis encoding via libvorbis, native implementation exists [no]
--enable-libx264 enable H.264 encoding via x264 [no]
--enable-libxvid enable Xvid encoding via xvidcore, native MPEG-4/Xvid encoder exists [no]
--enable-mlib enable Sun medialib [no]
--enable-zlib enable zlib [autodetect]
Advanced options (experts only):
--source-path=PATH path to source code [/home/morpheuz/다운로드/ffmpeg]
--cross-prefix=PREFIX use PREFIX for compilation tools []
--enable-cross-compile assume a cross-compiler is used
--sysroot=PATH root of cross-build tree
--sysinclude=PATH location of cross-build system headers
--target-os=OS compiler targets OS [linux]
--target-exec=CMD command to run executables on target
--target-path=DIR path to view of build directory on target
--nm=NM use nm tool
--as=AS use assembler AS []
--cc=CC use C compiler CC [gcc]
--ld=LD use linker LD
--host-cc=HOSTCC use host C compiler HOSTCC
--host-cflags=HCFLAGS use HCFLAGS when compiling for host
--host-ldflags=HLDFLAGS use HLDFLAGS when linking for host
--host-libs=HLIBS use libs HLIBS when linking for host
--extra-cflags=ECFLAGS add ECFLAGS to CFLAGS []
--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS []
--extra-libs=ELIBS add ELIBS []
--extra-version=STRING version string suffix []
--build-suffix=SUFFIX library name suffix []
--arch=ARCH select architecture [i686]
--cpu=CPU select the minimum required CPU (affects instruction selection, may crash on older CPUs)
--enable-powerpc-perf enable performance report on PPC (requires enabling PMC)
--disable-altivec disable AltiVec optimizations
--disable-amd3dnow disable 3DNow! optimizations
--disable-amd3dnowext disable 3DNow! extended optimizations
--disable-mmx disable MMX optimizations
--disable-mmx2 disable MMX2 optimizations
--disable-sse disable SSE optimizations
--disable-ssse3 disable SSSE3 optimizations
--disable-armv5te disable armv5te optimizations
--disable-armv6 disable armv6 optimizations
--disable-armv6t2 disable armv6t2 optimizations
--disable-armvfp disable ARM VFP optimizations
--disable-iwmmxt disable iwmmxt optimizations
--disable-mmi disable MMI optimizations
--disable-neon disable neon optimizations
--disable-vis disable VIS optimizations
--disable-yasm disable use of yasm assembler
--enable-pic build position-independent code
Developer options (useful when working on FFmpeg itself):
--disable-debug disable debugging symbols
--enable-debug=LEVEL set the debug level []
--enable-gprof enable profiling with gprof []
--disable-optimizations disable compiler optimizations
--enable-extra-warnings enable more compiler warnings
--disable-stripping disable stripping of executables and shared libraries
NOTE: Object files are built at the place where configure is launched.
머.. 그 다음에는 make/make install
$ ffmpeg --help | grep amr
FFmpeg version SVN-r21186, Copyright (c) 2000-2010 Fabrice Bellard, et al.
built on Jan 14 2010 00:21:22 with gcc 4.4.1
configuration: --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3
libavutil 50. 7. 0 / 50. 7. 0
libavcodec 52.47. 0 / 52.47. 0
libavformat 52.46. 0 / 52.46. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0. 8. 0 / 0. 8. 0
에러는 아니지만 warning 내지는 no라고 뜨는 부분을 해결하기 위해 설치한 패키지들
mtpfs
mtp-tools
libmtp-dev
lua5.1 (설치해도 못찾음)
liblivemedia-dev
livemedia-utils
libdvbpsi5-dev
libv4l-dev
libcddb2
libcddb2-dev
libmpeg2-4-dev
zvbi (설치해도 못찾음)
libpulseaudio-dev
configure 시에는 발생하지 않으나, make 시에 발생해서 추가로 설치한 패키지
x11proto-xext-dev