互联网直播业务近几年很火。自己也研究了一下,发现在nginx上配置视频点播也很容易实现,所以分享一下。1、在ubuntu14.04上安装nginx和nginx_rtmp_module扩展。根据nginx是否安装以及安装方式的不同,安装扩展的方式有3种。1.新安装nginx和nginx_rtmp_module扩展#!/bin/shapt-getupdateapt-getinstall-ygcclibpcre3libpcre3-devopenssllibssl-devmakegitlibxml2libxml2-devlibxslt-devlibgd2-xpm-devgeoip-databaselibgeoip-devcd/usr/local/src/gitclonehttps://github.com/arut/nginx-rtmp-module.gitwget-chttp://mirrors.sohu.com/nginx/nginx-1.9.14.tar.gztarzxvfnginx-1.9.14.tar.gzcdnginx-1.9.14/./configure--with-http_ssl_module--add-module=/usr/local/src/nginx-rtmp-modulemakemakeinstallcd/usr/local/nginx/ln-s`pwd`/sbin/nginx/usr/sbin/nginxnginx-Vwgethttp://www.*****.com/editor/attached/file/20160322/20160322112243_43972.txtmv20160322112243_43972.txt/etc/init.d/nginxchmod+x/etc/init.d/nginxservicenginxrestart2.apt-get如果已经安装了nginx,需要重新编译安装并添加nginx_rtmp_moduleextension#!/bin/shapt-get-y安装dpkg-devlibxml2libxml2-devlibxslt-devlibgd2-xpm-devgeoip-databaselibgeoip-devlibpcre3libpcre3-devlibssl-devopensslnginx-V2>anginx_config=`cata|grepcon图|cut-d':'-f2`nginx_version=`cata|grep'nginx版本'|cut-d'/'-f2|cut-d''-f1`rm-facd/usr/local/src/#apt-getinstall-ygitgitclonehttps://github.com/arut/nginx-rtmp-module.git#使用搜狐打开源镜像下载对应的nginx版本#apt-getsourcenginxwget-c"http://mirrors.sohu.com/nginx/nginx-${nginx_version}.tar.gz"tarzxvf"nginx-${nginx_version}.tar.gz"cd"nginx-$nginx_version"echo"./configure${nginx_config}--add-module=/usr/local/src/nginx-rtmp-module"|shmake#强制覆盖cp-rfpobjs/nginx/usr/sbin/nginx#检查错误/usr/sbin/nginx-t#重启nginxservicenginxrestartnginx-V3.如果已经编译安装了nginx,可以直接添加nginx_rtmp_module扩展,找到安装nginx的源码根目录。如果没有,请下载新的源代码。我的安装源码根目录/usr/local/src/nginx-1.4.6cd/usr/local/src/#apt-getinstall-ygitgitclonehttps://github.com/arut/nginx-rtmp-module。gitnginx-V2>anginx_config=`cata|grep配置|cut-d':'-f2`rm-facdnginx-1.4.6echo"./configure${nginx_config}--add-module=/usr/local/src/nginx-rtmp-module"|shmake#强制覆盖cp-rfpobjs/nginx/usr/sbin/nginx#检查是否有错误/usr/sbin/nginx-t#Restartnginxservicenginxrestartnginx-V2.配置并编辑nginx的配置文件(/etc/nginx/nginx.confor/usr/local/nginx/conf/nginx.conf)1.在http节点外添加一个rtmp节点,具体内容如下:rtmp{server{listen1935;块大小4096;最大连接数100;#音视频流上传播放地址和播放地址都是rtmp://你的IP/live/streamName#streamName本身是自定义应用live{liveon;录音;}#这是上传地址rtmp://你的IP:/hls/streamName2#直播的地址也是这个,点播播放地址在applicationhls下面{liveon;开着;#请先建立对应目录(mkdir-p/var/www/hls/&&chown-Rwww-data:www-data/var/www)hls_path/var/www/hls/;}}}说明:应用是指一个应用地址后面的streamName可以自己定义,点播时会在相应目录下生成类似streamName.m3u8、streamName.ts的文件。活下去;意思是开启直播。开着;表示开启点播,会在服务器上生成临时文件。录音;就是关闭保存视频的功能。点播地址为http协议的数据流地址。比如下面配置的http://yourIP:8080/hls/streamName2.m3u8。点播文件默认一个一个生成,会自动一个一个删除。m3u8文件是一个动态文件。你可以用vim查看。2、在下面http节点里面添加一个server节点,具体内容如下:#这是点播播放地址http://你的IP:8080/hls/streamName2.m3u8server{listen8080;索引index.html;根/var/www/hls/;位置/hls{别名/var/www/hls/;类型{application/vnd.apple.mpegurlm3u8;视频/mp2tts;}add_header缓存控制无缓存;}}说明:该节点是一个虚拟主机,配置用于播放上面点播服务生成的视频流。url中的streamName2以录制的推流名称为准。需要保持一致。默认情况下,该地址有一定时间限制,每次都需要检查服务器上是否存在m3u8文件。3.测试使用将视频流推送到服务器(1)。使用linux上的ffmpeg工具模拟推流到服务器。安装ffmpeg工具apt-get-yinstallbuild-essentialgit-corecheckinstallyasmtexi2htmllibvorbis-devlibx11-devlibvpx-devlibxfixes-devzlib1g-devpkg-confignetcatlibncurses5-devlibfaac-devlibmp3lame-devlibx264-devFFMPEG_VERSION=2.3.3cd/usr/local/srcif[!-d"/usr/local/src/ffmpeg-${FFMPEG_VERSION}"];然后sudowget"http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2"sudotar-xjf"ffmpeg-${FFMPEG_VERSION}.tar.bz2"ficd"ffmpeg-${FFMPEG_VERSION}“./configure--enable-version3--enable-postproc--enable-libvorbis--enable-libvpx--enable-gpl--enable-nonfree--enable-pthreads--enable-libfaac--enable-libmp3lame--enable-libx264makecheckinstall--pkgname=ffmpeg--pkgversion="5:${FFMPEG_VERSION}"--backup=no--deldoc=yes--defaultffmpeg--version使用ffmpeg工具转换本地视频将文件模拟推送到serverffmpeg-re-i/data/localFile.mp4-ccopy-fflvrtmp://你的IP/live/streamName这个命令会把本地的localFile.mp4模拟推送到live直播流中,然后然后就可以通过rtmp://你的IP/live/streamName地址看直播了ffmpeg-re-i/data/localFile.mp4-ccopy-fflv/var/www/hls/streamName这个命令会把本地localFile将.mp4模拟推入hls应用,然后可以通过rtmp://你的IP/hls/streamName地址观看直播,或者通过http://你的IP:8080/hls/streamName.m3u8打开播放器查看此视频的点播视频(2)。在Windows上使用一些专业的工具推流到服务器。我使用的是锐动PC录播/直播SDK(http://www.rdsdk.com/contrast...non-advertising]包这个是免费使用的,不需要安装,网上推荐的常用推流测试工具有OBS,XSplit,FMLE等推流地址为rtmp://你的IP/hls/streamNameorrtmp://你的IP/live/streamName(3).自己给手机等设备写APP,记录头像手机摄像头捕捉到的声音和麦克风捕捉到的声音,一起推送到服务器。安卓或者IOS的SDK有很多,可以自行开发。b.使用播放器点播视频Windows和Linux桌面版都可以VLC播放器打开http://你的IP:8080/hls/streamName.m3u8看直播(这个播放器不支持rtmp直播?)c.使用网络浏览器在网页上播放直播视频并编写HTML页面index.html:
