实现简单网页rtmp直播:nginx+ckplayer+linux
一、安装nginx
安装带有rtmp模块的nginx服务器(其它支持rtmp协议的流媒体服务器像easydarwin、srs等+Apache等web服务器也可以),此处使用nginx服务器,简单方便。
安装请参考我的CSDN:nginx安装,经过多次安装实践,此方法适用于rhel和centos系统,ubuntu可能会不适用,如果安装过程中出现大量错误,请另行百度安装方法。
不一定非要使用云服务器,可以自己使用vmware虚拟一个linux系统,就可以在同一台电脑上实现整套流程,不过是局域网,和广域网可能还有部分差异,但是大同小异,流程都是差不多的,简单使用的话,用vmware的方式就够了。注意需要关闭防火墙或者通行相关端口。
二、推流
推流在此我使用的是ffmpeg,ffmpeg虽然是一个开源软件,但是功能很多也很强大(一般开源软件性能都不是很强,只是让你入门学习使用),此处用它绰绰有余。ffmpeg官网有不用自己编译的版本,也可以自己动手编译下,锻炼下自己动手的能力,此处就不放windows版本的了,之前自己动手编译过一个linux版本的,不想自己动手的可以去这里CSND下载。
windows版本推流命令:
while() { .\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的更多相关文章
- 极速搭建RTMP直播流服务器+webapp (vue) 简单实现直播效果
在尝试使用webRTC实现webapp直播失败后,转移思路开始另外寻找可行的解决方案.在网页上尝试使用webRTC实现视频的直播与看直播,在谷歌浏览器以及safari浏览器上测试是可行的.但是基于基座 ...
- 基于nginx的rtmp直播服务器(nginx-rtmp-module实现)
首先,在搭建服务之前先了解下目前主流的几个直播协议: 1.RTMP: 实时消息传输协议,Real Time Messaging Protocol,是 Adobe Systems 公司为 Flash 播 ...
- OSX安装nginx和rtmp模块(rtmp直播服务器搭建)
1.安装Homebrew,执行命令 1 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ma ...
- 实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解
注意:这里不会讲到nginx流媒体模块如何安装的问题,只研究rtmp,hls直播和录制相关的nginx服务器配置文件的详细用法和说明.可以对照这些命令详解配置nginx -rtmp服务 一.nginx ...
- 搭建rtmp直播流服务之1:使用nginx搭建rtmp直播流服务器(nginx-rtmp模块的安装以及rtmp直播流配置)
欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) 一.方案简要 首先通过对开发方案的仔细研究(实时监控.流媒体.直播流方案的数据源-->协议转换-->服务器--&g ...
- 让你的 Nginx 的 RTMP 直播具有统计某频道在线观看用户数量的功能
你的 Nginx 已经有了 RTMP 直播功能的话,如果你还想统计某直播频道当前观看用户量的话,可以加入 with-http_xslt_module 模块.具体步骤如下: 1.查看原来的 ...
- 三、直播整体流程 五、搭建Nginx+Rtmp直播流服务
HTML5实现视频直播功能思路详解_html5教程技巧_脚本之家 https://m.jb51.net/html5/587215.html 三.直播整体流程 直播整体流程大致可分为: 视频采集端:可以 ...
- nginx开发(四)调用ffmpeg,搭建rtmp直播流。
1: 修改conf文件,配置rtmp直播 打开usr/local/nginx/conf/nginx.conf,添加红色内容: rtmp {#rtmp点播配置 server { li ...
- Windows10环境下 Nginx+ffmpeg自搭服务器制作RTMP直播流
Windows10环境下 Nginx+ffmpeg自搭服务器制作RTMP直播流学习笔记 所需条件: nginx-rtmp-module(带rtmp模块) ,链接:https://link.jiansh ...
随机推荐
- 爬虫的新手使用教程(python代理IP)
前言 Python爬虫要经历爬虫.爬虫被限制.爬虫反限制的过程.当然后续还要网页爬虫限制优化,爬虫再反限制的一系列道高一尺魔高一丈的过程.爬虫的初级阶段,添加headers和ip代理可以解决很多问题. ...
- stand up meeting 11/30/2015
part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 完善了UI的各项功能,弹窗的显示格式等方面的规范:解决logic部分调用该dll的问题:解决鼠标事件的捕捉中~ ...
- JS 中的自定义事件和模拟事件
在 JS 中模拟事件指的是模拟 JS 中定义的一些事件,例如点击事件,键盘事件等. 自定义事件指的是创建一个自定义的,JS 中之前没有的事件. 接下来分别说一下创建这两种事件的方法. 创建自定义事件 ...
- 数据结构与算法--树(tree)结构
树 二叉树 遍历原则:前序遍历是根左右, 中序遍历是左根右,后序遍历是左右根. 二叉搜索树 特点:对于树中的每个节点X,它的左子树中所有节点的值都小于X,右子树中所有节点的值都大于X. 遍历:采取二叉 ...
- 详解JS闭包概念
闭包理解 1. 如何产生闭包? *当一个嵌套的内部(子)函数引用了嵌套的外部(父)函数的变量(函数)时,产生闭包 2. 闭包到底是什么? * 使用Chrome调试查看 * 理解一 ...
- [一道蓝鲸安全打卡Web分析] 文件上传引发的二次注入
蓝鲸打卡的一个 web 文件上传引发二次注入的题解和思考 蓝鲸文件管理系统 源代码地址:http://www.whaledu.com/course/290/task/2848/show 首先在设置文件 ...
- golang方法详解
Go 语言 类型方法是一种对类型行为的封装 .Go 语言的方法非常纯粹, 可以看作特殊类型的函数,其显式地将对象实例或指针作为函数的第一个参数,并且参数可以自己指定,而不强制要求一定是 this或se ...
- 使用hexo和coding建立静态博客站点
背景 由于工作性质的原因,做技术的总想记录和分享一下自己的学习和成长历程,向这世界证明我来过.写文章,发博客,一开始使用51cto,广告太多,看起来让人很痛苦:接着试用了博客园,广告少一些,但感觉还是 ...
- 高质量动漫实时画质增强器Anime4K在mpv上的配置
Anime4K地址 https://github.com/bloc97/Anime4K mpv地址 https://mpv.io/ 这个要错峰下载,网速不太好 在C盘用户\..\AppData\ ...
- JVM 真的很难学么?不、只是你“不敢学”而已
JVM 真的很难学么?不.只是你"不敢学"而已 许多招聘的信息上面都说,要了解jvm.多线程什么的对于 java 程序员来说,这是工作好多年的程序员都不一定能掌握的东 ...