搭建思路: 1. 采用nginx+nginx-rtmp-module搭建rtmp服务端 2. ffmpeg作为推送端,将视频流转为adobe flash flv格式封装后推送到nginx rtmp服务 Nginx服务端: nginx下载: nginx-rtmp-module下载: 编译安装: 添加rtmp配置: 启动服务: 配置Nginx流媒体服务器 nginx服务器有一个配置文件叫做nginx.conf ,这个文件默认是位于/usr/local/nginx/conf 目录下。 其中rtmp就是rtmp服务器模块,端口是1935,application我理解为一个路径。可以通过访问rtmp://localhost/videotest 来访问videotest这个资源。live on 表示这是实时的传输,这不同于点播,点播就好比我在某视频网站上想看一个视频,无论我什么时候去点击,它会从头开始播放。而实时传输(直播),就是好比看电视,我在19:20去打开电视(打开直播路),视频不会从头开始播放,而是从当前(19:20)的视频数据开始播放。 除了配置rtmp服务器,还可以配置HTTP和HTTPS服务器。这方面我还没有深入去了解。更多关于nginx服务器和其配置方式,请阅读nginx官网 。 安装ffmpeg 首先安装h264 视频编解码库: sudo apt-get update sudo apt-get install libx264-dev 安装ffmpeg ,依次输入以下命令: wget http:///releases/ffmpeg-3.0.9.tar.bz2 tar jxvf ffmpeg-3.0.9.tar.bz2 cd ffmpeg-3.0.9/ sudo ./configure –enable-shared –enable-pthreads –enable-gpl –enable-avresample –enable-libx264 –enable-libtheora –disable-yasm 动态 sudo ./configure –disable-shared –enable-static –enable-pthreads –enable-gpl –enable-avresample –enable-libx264 –enable-libtheora –disable-yasm 静态 如果出现错误 ,可能需要安装sudo apt-get -y install libtheora-dev sudo make sudo make install 其中sudo make 这个过程会比较久。安装完ffmpeg之后,在命令行中输入ffmpeg: 如果出现找不到库,说明是使用动态编译,库的路径无法找到。 因为这里我重新用静态命令编译一遍,然后就成功了。 推流与拉流 配置好nginx.conf之后,重新启动sudo /usr/local/nginx/sbin/nginx 然后在命令行中使用 ffmpeg 进行推流: ffmpeg -re -i /home/hjh/nginx/video.mp4 -vcodec copy -acodec copy -b:v 800k -b:a 32k -f flv rtmp://localhost:1935/videotest/test /home/hjh/nginx/video.mp4自己需要播放的文件。 在本机器上用vlc打开串流rtmp://localhost:1935/videotest/test如图 这里有一个bug,局域网中其他电脑访问服务器需要使用: IT大咖说 | 关于版权 |
|
来自: 西北望msm66g9f > 《编程》