Centos6.4 實現Flv Mp4 拖拽Seek

wget http://sourceforge.net/projects/pcre/files/pcre/8.32/pcre-8.32.zip
wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz
wget http://nginx.org/download/nginx-1.3.9.tar.gz
wget http://sourceforge.net/projects/yamdi/files/yamdi/1.9/yamdi-1.9.tar.gz

tar zxvf  yamdi-1.9.tar.gz
cd yamdi-1.9
gcc yamdi.c -o yamdi -O2 -Wall
mv yamdi /usr/bin/

注意我們編譯的 yamdi 它起着重要的作用,因爲一個FLV視頻要能夠拖拽播放,這個FLV在其 metadata中有關鍵楨的信息,但大部分FLV 是沒有的。所以,我們要甬道開源的yamdi來爲視頻添加關鍵幀信息
命令爲
yamdi -i input.flv -o out.flv
yamdi
的參數:
-i
指定FLV源文件.
-o
指定輸出文件,如果文件名爲-,則輸出到標準輸出設備上,如果不指定也是
-x
插入的metadata信息XML文件。如果輸出文件省略了,則只生成metadata信息.
-c
一個寫入creator標籤的字符串.
-l
添加 onLastSecond 行爲.
-h
顯示幫助信息.

安裝nginx
安裝nginx之前必須先安裝pcre
pcre
編譯安裝需要gcc gcc-c++
yum install gcc gcc-c++ openssl-devel zlib-devel
unzip pcre-8.32.zip
cd pcre-8.32
./configure
make && make install


tar zxvf  nginx_mod_h264_streaming-2.2.7.tar.gz
tar zxvf nginx-1.3.9.tar.gz
cd nginx-1.3.9
./configure  --user=www --group=www --with-http_sub_module --with-http_flv_module  --add-module=../nginx_mod_h264_streaming-2.2.7 --with-http_dav_module --with-http_stub_status_module --with-http_addition_module

make
時會有報錯如下:
make[1]: *** [objs/addon/src/ngx_http_h264_streaming_module.o] Error 1
make[1]: Leaving directory `/home/mock/BUILD_ROOT/BUILD/nginx-0.8.38′
make: *** [build] Error 2

解決辦法:vim nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c  將如下幾行註釋
/* TODO: Win32 */  (
這行可以保留,下面四行可以刪除掉)
if (r->zero_in_uri)
{
return NGX_DECLINED;
}

make && make install

 

 

 

nginx配置文件
#nginx.conf
worker_processes 1;
events {
    use epoll;
    worker_connections  65535;

}
http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
  server {
    listen 80;
    server_name localhost;
    location / {
      root html;
      index index.html index.htm;
    }

    location ~ \.mp4$ {
      mp4;
    }
    location ~ \.flv$ {
      flv;
    }
    error_page 500 502 503 504 /50x.html;
      location = /50x.html {
      root html;
      }
  }
}
命令測試:
curl -v http://xx.xx.com/resbase/2010/06/baihezhengdan.flv?start=10240000 -o /dev/null
找個支持seek(拖拽)的播放器JWplayer
http://www.longtailvideo.com/support/jw-player

 

 

出現的問題:
Centos 6.4 64位上編譯安照 nginx-1.3.9 出錯
[root@localhost conf]# /usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory


從錯誤看出是缺少lib文件導致,進一步查看下
[root@localhost]cd /usr/local/nginx/conf/
[root@localhost conf]# ldd $(which /usr/local/nginx/sbin/nginx)
linux-gate.so.1 => (0x0071b000)
libpthread.so.0 => /lib/libpthread.so.0 (0×00498000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0×00986000)
libpcre.so.1 => not found
libcrypto.so.6 => /lib/libcrypto.so.6 (0×00196000)
libz.so.1 => /lib/libz.so.1 (0×00610000)
libc.so.6 => /lib/libc.so.6 (0x002d7000)
/lib/ld-linux.so.2 (0x006a8000)
libdl.so.2 => /lib/libdl.so.2 (0x008c3000)

可以看出 libpcre.so.1 => not found 並沒有找到,進入/lib目錄中手動鏈接下
[root@localhost lib64]# ln -s libpcre.so.0.0.1 libpcre.so.1

然後在啓動nginx ok
[root@localhost lib]# /usr/local/nginx/sbin/nginx
[root@localhost lib]# ps -ef |grep nginx
root 9539 1 0 19:06 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
www 9540 9539 0 19:06 ? 00:00:00 nginx: worker process

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章