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_fileDaha 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