wtorek, 24 grudnia 2013

Vlc strumieniowanie. FFmpeg, Ubuntu Server i kodeki x264

Obecnie podjąłem się długiej i mozolnej walki jak strumień z kamery USB, wysyłany po ethernecie skompresować i wysłać w świat.

W związku z tym, że Ubuntu prowadzi dosyć dziwną, choć uzasadnioną politykę dot. kodeków i oprogramowania nie-do-końca-otwartego, cała operacja wymaga przede wszystkim. Skompilowania na nowo ffmpeg.

W celu... korzystałem z dwóch tutków:
1. Oficjalnego ze strony ffmpeg, który nie do końca działa.
2. Oraz Googlobloga Wireless Video Sensor.

Łącząc te dwa dzieła wyszły mi takie (mniej więcej) komendy*:
*Ponieważ preferuję zabezpieczenie sobie drogi powrotnej, wszystkie programy są instalowane jako paczki, które łatwo jest usunąć (checkinstall).

Ponieważ Yasm na Ubuntu 12.04 jest za stary...:
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar xzvf yasm-1.2.0.tar.gz
cd yasm-1.2.0 
./configure 
make -j2
sudo checkinstall
Wywalamy co nam może przeszkadzać i instalujemy co może** się przydać:
**może, bo instaluję wszystko hurtem. Miejsce mam, a nie chce mi się bawić w poszukiwanie brakujących bibliotek i ich doinstalowywanie - ktoś już to zrobił za mnie.
sudo aptitude remove ffmpeg x264 libx264-dev

sudo aptitude install build-essential checkinstall git libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libavfilter-dev libfreetype6-dev libvpx-dev libxfixes-dev texi2html zlib1g-dev 


sudo aptitude install libgnutls-dev sudo aptitude install libass-dev 

sudo aptitude install libdirac-dev 

sudo aptitude install libgsm1-dev sudo aptitude install libgsmme-dev 
sudo aptitude install libmodplug-dev sudo aptitude install libopenjpeg-dev 
sudo aptitude install librtmp-dev sudo aptitude install libschroedinger-dev 
sudo aptitude install libspeex-dev sudo aptitude install libvo-aacenc-dev 
sudo aptitude install libvo-amrwbenc-dev sudo aptitude install libxvidcore-dev sudo aptitude install libopenal-dev libdc1394-22-dev libv4l-dev 
sudo aptitude install libcdio-dev libcdio-cdda-dev libcdio-paranoia-dev

Teraz instalujemy x264:
git clone git://git.videolan.org/x264 cd x264 ./configure --enable-static --enable-shared --enable-debug --enable-gprof 
make 

sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \ awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \ --fstrans=no --default
oraz FFmpeg. Ucięte wszystko, pozostawione jedynie dekodowanie tego co wysłane zostało w formacie mjpeg i przekonwertowanie tego do h264 bez dźwięku:

 [todo] ./configure --enable-gpl --enable-libx264 --enable-libopenjpeg --enable-nonfree

Brak komentarzy:

Prześlij komentarz