Arama
 
 

En Yeni Yazılar...
Apache'ye mod_h264_streaming modülü yüklemek
2009-12-03 10:55:53

Yazılar...
Apache'ye mod_h264_streaming modülü yüklemek
   2009-12-03 10:55:53
mod_h264_streaming modülü web sunucunuza MP4 streaming yapabilmenizi sağlamaktadır. Modülün sayfasına http://h264.code-shop.com/trac adresinden ulaşabilirsiniz. Burada apache2 ye modül olarak kurulması sırasında karşılaşabileceğiniz sorunun çözümü ile ilgili bilgi vermek istiyorum. Temel apache ye modül olarak kurulumunu buradan öğrenebilirsiniz.

mod_h264_streaming modülü sayfasındaki talimatlara göre kurulum yaptığımda, normal kurulum belirtilenlere göre tamamlanmış gibi duruyordu. Ancak apache loglarına baktığımda ve bir mp4 dosyası talep ettiğimde, streaming özelliğinin olmadığını, apache loglarına "[notice] child pid 22749 exit signal Segmentation fault (11)" şeklinde süreç hatası aldığımı gösteren satırlar düşüyordu.

Bu problemden sonra, mod_h264_streaming modülünü apxs ile manual olarak kurmayı denedim. Siteden indirdiğim soruce dosyalarının açtığım dizindeki "src" dizini altında bulunan dosyalar üzerinden derleme işlemi yaptığımda aşağıdaki hata ile karşılaştım:

root@N~# /usr/local/apache2/bin/apxs -c -i mod_h264_streaming.c moov.c
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic  -DAP_HAVE_DESIGNATED_INITIALIZER -
DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache2/include  -I/usr/local/apache2/inclu
de   -I/usr/local/apache2/include   -c -o mod_h264_streaming.lo mod_h264_streaming.c && touch mod_h264_strea
ming.slo
mod_h264_streaming.c: In function `drive_h264_streaming':
mod_h264_streaming.c:89: error: `X_MOD_STREAMING_KEY' undeclared (first use in this function)
mod_h264_streaming.c:89: error: (Each undeclared identifier is reported only once
mod_h264_streaming.c:89: error: for each function it appears in.)
mod_h264_streaming.c:89: error: `X_MOD_STREAMING_VERSION' undeclared (first use in this function)
mod_h264_streaming.c: In function `h264_streaming_handler':
mod_h264_streaming.c:242: error: `H264_STREAMING_HANDLER' undeclared (first use in this function)
mod_h264_streaming.c: At top level:
mod_h264_streaming.c:271: error: syntax error before '{' token
apxs:Error: Command failed with rc=65536


İnternette biraz gezindikten sonra SVN ile kaynak dosyaları cekip apxs ile derleme yaptım. Derleme işlemi sorunsuz olarak tamamlanmıştı, apache httpd.conf dosyasında gerekli eklemeleri yapıp apache'yi restart ettiğimde aşağıdaki hatayı alıyordum:

mod_h264_streaming.so: undefined symbol: apr_brigade_insert_file

Daha sonra modul dosyasındaki bir satırın değiştirilerek sorunun çözüldüğünü buldum. Kurulum aşamaları aşağıdaki gibiydi:


root@N~# cd ~
root@N~# svn export
http://h264.code-shop.com/svn/h264/tags/mod_h264_streaming-2.0/apache apache_http_h264_streaming
root@N~# svn export
--force http://h264.code-shop.com/svn/h264/tags/mod_h264_streaming-2.0/mp4split apache_http_h264_streaming
root@N~# cd ~/apache_http_h264_streaming

Bu noktadan sonra mod_h264_streaming.c dosyasının 104. satırındaki aşağıdaki satır yerine;

apr_brigade_insert_file(bb, fp, mdat_offset, mdat_size, r->pool);

bu satırı yazıyoruz :

apr_bucket *e; e = apr_bucket_file_create(fp, mdat_offset, mdat_size,
r->pool, r->connection->bucket_alloc);
APR_BRIGADE_INSERT_TAIL(bb, e);

root@N~# sudo /usr/local/apache2/bin/apxs -c -i mod_h264_streaming.c moov.c
(apxs yazılımı sizde nerde kuruluysa o şekilde tam yol belirtmelisiniz...)

Son aşama olarak httpd.conf dosyasında ilgili yere aşağıdaki satırları ekleyerek modulu aktifleştirebilirsiniz.

LoadModule h264_streaming_module modules/mod_h264_streaming.so
AddHandler h264-streaming.extensions .mp4


Konuyla ilgili olarak kaynak adresler:

http://h264.code-shop.com/trac/discussion/9/31
http://h264.code-shop.com/trac/discussion/9/13


Linux; 0 Yorumlar

Google