(转)nginx-rtmp-module和ffmpeg搭建实时HLS切片
1.rtmp服务器 nginx+pcre+zlib+openssl+nginx-rtmp-module ./configure \ --prefix=/usr/local/nginx \ --sbin-path=/usr/local/nginx/nginx \ --conf-path=/usr/local/nginx/nginx.conf \ --pid-path=/usr/local/nginx/nginx.pid \ --error-log-path=/usr/local/nginx/logs/error.log \ --with-pcre=/project/pcre-8.33 \ --with-zlib=/project/zlib-1.2.8 \ --with-http_dav_module \ --with-http_flv_module \ --with-http_stub_status_module \ --without-http_scgi_module \ --without-http_uwsgi_module \ --without-http_gzip_module \ --without-http_ssi_module \ --without-http_proxy_module \ --without-http_memcached_module \ --without-http_empty_gif_module \ --without-mail_pop3_module \ --without-mail_imap_module \ --without-mail_smtp_module \ --with-http_ssl_module \ --with-openssl=/project/openssl-1.0.1e \ --add-module=/project/nginx-rtmp-module-master make && make install 修改nginx-rtmp-module-master/test/rtmp-publisher目录下player.html中rtmp推流接收地址和stream 增加nginx-rtmp-module-master/test/rtmp-publisher目录下播放器相关文件权限x 具体参考:http://www.cnblogs.com/aHuner/p/3247068.html 2.rtmp实时推流 推流工具:Adobe Flash Media Live Encoder 必须同时推音频和视频,否则ffmpeg切片会报错,e2eSoft VCam做模拟视频输入,手机耳机插入PC麦克风插口做音频输入 3.安装x264 wget ftp://ftp.videolan.org/pub/x264/ ... 2245-stable.tar.bz2 tar jxvf x264-snapshot-20120718-2245-stable.tar.bz2 ./configure --prefix=/usr/local/x264 --disable-asm --enable-shared make && make install vi /etc/ld.so.conf 加入:/usr/local/x264/lib 执行:ldconfig 4.安装aac http://www.audiocoding.com/faac.html ./configure --prefix=/usr/local/faac--enable-shared make&&make install 遇到错误: mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’ 解决方法: vi common/mp4v2/mpeg4ip.h 修改第123行: #ifdef __cplusplus extern "C++" { #endif const char *strcasestr(const char *haystack, const char *needle); #ifdef __cplusplus } #endif vi /etc/ld.so.conf 加入:/usr/local/faac/lib 执行:ldconfig 5.ffmpeg切片方案 ./configure --disable-yasm --enable-libx264--enable-libfaac --enable-gpl --enable-shared --prefix=/usr/local/ffmpeg --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib make && make install 如果linux下出现 ffmpeg: error while loading shared libraries: libavdevice.so.55: cannot open shared object file: No such file or directory vi /etc/ld.so.conf 加入:/usr/local/ffmpeg/lib 执行:ldconfig 切本地文件命令:ffmpeg -i test.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 10 output%03d.ts 切网络地址命令:ffmpeg -i rtmp://192.168.42.128/myapp/test1 -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 10 output%03d.ts 设置视频编码库libx264和音频编码库libfaac: ./ffmpeg -y -i rtmp://192.168.42.128/myapp/test1 -pix_fmt yuv420p -vcodec libx264 -acodec libfaac -r 25 -profile:v baseline -b:v 150k -maxrate 200k -force_key_frames 50 -s 320x240 -map 0 -flags -global_header -f segment -segment_list playlist.m3u8 -segment_time 10 -segment_format mpeg_ts -segment_list_type m3u8 segment%05d.ts 6. nginx-rtmp-module切片 application hls { live on; hls on; hls_path /project/nginx-rtmp-module-master/test/rtmp-publisher; } 7.nginx实时rtmp播放地址 http://192.168.42.128/player.html http://192.168.42.128/stat 8.HLS实时播放地址 http://192.168.42.128/playlist.m3u8 |
posted on 2015-05-04 22:58 tangxiacun 阅读(1719) 评论(0) 编辑 收藏 举报