实现简单网页rtmp直播:nginx+ckplayer+linux

Posted _风轻云淡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现简单网页rtmp直播:nginx+ckplayer+linux相关的知识,希望对你有一定的参考价值。

一、安装nginx

安装带有rtmp模块的nginx服务器(其它支持rtmp协议的流媒体服务器像easydarwin、srs等+Apache等web服务器也可以),此处使用nginx服务器,简单方便。

安装请参考我的CSDN:nginx安装,经过多次安装实践,此方法适用于rhel和centos系统,ubuntu可能会不适用,如果安装过程中出现大量错误,请另行百度安装方法。

不一定非要使用云服务器,可以自己使用vmware虚拟一个linux系统,就可以在同一台电脑上实现整套流程,不过是局域网,和广域网可能还有部分差异,但是大同小异,流程都是差不多的,简单使用的话,用vmware的方式就够了。注意需要关闭防火墙或者通行相关端口。

二、推流

推流在此我使用的是ffmpeg,ffmpeg虽然是一个开源软件,但是功能很多也很强大(一般开源软件都不注重效率,无法商用,只是让你入门学习使用,但也有高效的开源软件,像是伟大的linux,流媒体服务器srs等等),此处用它绰绰有余。ffmpeg官网有不用自己编译的版本,也可以自己动手编译下,锻炼下自己动手的能力,此处就不放windows版本的了,之前自己动手编译过一个linux版本的,不想自己动手的可以去这里CSND下载

windows版本推流命令:

while(1) { .\\ffmpeg.exe -re -i F:\\ChengTongPan\\MangZhong.mp4 -vcodec copy -acodec copy -f flv rtmp://x.x.x.x:xxxx/live/room }

linux版本推流命令:

while true; do ./ffmpeg -re -i ./MangZhong.mp4 -vcodec copy -acodec copy -f flv rtmp://x.x.x.x:xxxx/live/room; done

ffmpeg自带的循环推流在这里不能使用,只能使用一个简陋的循环推流。

三、选择播放方式

这里使用ckplayer的方式,此方式会依赖flash,过后我会尝试寻找不依赖flash的方式,据了解,html5已经可以不依赖falsh实现rtmp协议视频播放,待以后探索。。

编辑index.html:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>ckplayer</title>
        
        <style type="text/css">
            body {
                margin: 0;
                padding: 0px;
                font-family: "Microsoft YaHei", YaHei, "微软雅黑", SimHei, "黑体";
                font-size: 18px;
            }
            p{
                padding-left: 2em;
            }
        </style>

    </head>

    <body>
        <div id="video" style="width: 100%; height: 400px;max-width: 600px;">
        </div>
        <script type="text/javascript" src="ckplayer/ckplayer.js" charset="UTF-8"></script>
        <script type="text/javascript">
            var videoObject = {
                container: \'#video\', //容器的ID或className
                variable: \'player\', //播放函数名称
                //loop: true, //播放结束是否循环播放
                autoplay: true,//是否自动播放
                poster: \'material/poster.jpg\', //封面图片
                preview: { //预览图片
                    file: [\'material/mydream_en1800_1010_01.png\', \'material/mydream_en1800_1010_02.png\'],
                    scale: 2
                },
                //flashplayer:true,
                //live:true,
                //debug:true,
                //video:\'rtmp://58.200.131.2:1935/livetv/hunantv\' 此链接是网络流,可以测试使用,可以替换为你自己的rtmp流地址
                video:\'rtmp://ip+port/live/room\'
            };
            var player = new ckplayer(videoObject);
        </script>
    </body>

</html>

下载ckplayer,百度一大堆,好像没找到上传附件的方式,此处就先不放了。。。

下载解压ckplayer到nginx的根目录下,应该是在/usr/local/nginx/html下面,不是在这里的自己找一下自己的根目录在哪就好了。

四、播放测试:

找到一个带有flash插件的浏览器,打开nginx下的html文件即可播放,我的是http://x.x.x.x/ckplayer,打开后如下:

 

 至此,rtmp协议的简单直播服务就搭建完成了。

 

以上是关于实现简单网页rtmp直播:nginx+ckplayer+linux的主要内容,如果未能解决你的问题,请参考以下文章

流媒体服务海康摄像头RTSP视频推流转码拉流直播综合应用:VLC+FFMPEG+Nginx实现RTSP到RTMP网页直播

obs nginx-rtmp-module搭建流媒体服务器实现直播 ding

Car-eye-http-flv-module 实现nginx-rtmp-mudule HTTP方式的FLV直播功能

「自己开发直播」rtmp-nginx-module实现直播状态观看人数控制

Linux nginx+rtmp服务器配置实现直播点播

ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制