本篇博客继续在上篇《在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务》

http://blog.csdn.net/tao_627/article/details/18909075

的基础上,搭建基于开源框架的视频直播服务,仍然使用root用户操作。基本框架图示如下:

下面分为几个步骤说明如下:

1.实时转码服务器构建

这里为了充分挖掘开源项目的优势,我使用ffmpeg来进行实时转码。为此,在Ubuntu 12.04上安装最新的ffmpeg静态生成包。参见下面的链接

http://ffmpeg.gusari.org/static/64bit/

下载下来最新的源码包后,解压到系统目录中

cd /usr/local/src

wget http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.2014-02-05.tar.gz

tar zxvf  ffmpeg.static.64bit.2014-02-05.tar.gz -C /usr/local/bin

这样将解压出的两个可执行文件ffmpeg和ffprobe复制到系统的/usr/local/bin下面,以后我们可以直接在系统的任何路径使用ffmpeg命令就可以了,我们先看看

将要提供直播服务的视频文件《星月神话》xinyueshenhua.flv存放到Crtmpserver服务器的指定目录/home/taoyx/视频/下面,我们这里为了简单,只使用flv格式的视频文件来进行实时流化,提供直播服务,使用下面的命令实时转码

ffmpeg -re -i "/home/taoyx/视频/xinyueshenghua.flv" -vcodec copy -acodec copy -f flv rtmp://192.168.0.106/live/cuoai

相关说明:

上面的命令将一个本地文件流化为一个名为cuoai.flv(.flv可以省略)的实时流,通过rtmp协议播放。

这里采用ffmpeg而非Flash Media Live Encoder等其它工具,是希望尽可能采用开源解决方案,同时不受其它商业因素制约.另外一点是,ffmpeg本身功能非常强大,它值得我们去投入精力去挖掘它的自身强大功能.

这里采用静态库安装的方式,是为了获取最新版的ffmpeg代码,同时不想从源码编译,因为各种库的依赖关系比较复杂,而且ffmpeg目前不是我们研究的重点.为了尽快达到我们的目的,我选择最快的方式,就是采用静态库的方式.目前ffmpeg在Ubuntu上的ppa提供的版本比较旧,只是ffmpeg1.0,不是最新的ffmpeg2.1,不符合我的要求.

2.使用新版的JWPlayer(官网http://www.jwplayer.com/)来提供网页端的flash播放器

我们从如下网址

https://account.jwplayer.com/#/account

下载最新版的JWPlayer源码,注意初次下载时,你需要先注册一个账号。然后下载self-hosted player版本,同时,你会得到一个Self-Hosted Player License Key,对免费版来说,它不是必须的,但是它可以给你的账户定期反馈使用JWPlayer的统计信息。

将下载得到的压缩包加压后,放到Apache服务器的根目录/var/www,参见如下目录结构

我将它上传到下面的网址

http://download.csdn.net/detail/tao_627/6899945

下面是live_jwplayer.html 的代码

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Crtmpserver Video Demo</title>
<script type="text/javascript" src="jwplayer.js"></script>
<script type="text/javascript">jwplayer.key="hB1eSAlsWoG5Q0Hg8BN4lkJn+6gNwfm5KFodug==";</script>
</head>
<body>
<div id='mediaspace'>Loading the JWPlayer...</div><script type="text/javascript">jwplayer("mediaspace").setup({flashplayer: "jwplayer.flash.swf",file: "rtmp://192.168.0.106/live/cuoai",image: "poster.jpg",height: 720,width: 1680});
</script></body>
</html>

3.开启直播流和crtmpserver服务器

ffmpeg -re -i "/home/taoyx/视频/xinyueshenghua.flv" -vcodec copy -acodec copy -f flv rtmp://192.168.0.106/live/cuoai

./crtmpserver/crtmpserver crtmpserver/crtmpserver.lua

4.从网页端观看直播流,

http://192.168.0.106/jwplayer6/live_jwplayer.html

下面是使用截图

当然,也可以同时观看点播节目,比如输入如下网址

http://192.168.0.106/jwplayer6/test_jwplayer.html

下面是使用截图

这样的话,我们通过本地文件来模拟产生实时直播流来搭建Crtmpserver的直播基本完成,剩下的工作就是结合该demo去深入研究它内部的代码.请继续参见后面的博文描述.

在Ubuntu 12.04 64bit上搭建Crtmpserver视频直播服务相关推荐

  1. 在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务

    说明如下: (1)所有操作最好使用root操作,以尽可能避免权限问题 (2)crtmpserver和web服务器apache(Ngnix亦可)被装在同一台服务器上,客户端使用其他PC的桌面浏览器和an ...

  2. 在Ubuntu 12.04 64bit上配置,安装和运行go程序

    注意: 下面的安装配置均遵从官网或是教材<Go语言程序设计>中的部分内容. 顺便说下,这是一本很难得的Go语言的入门教程,非常基础和全面.起初我因为这本书的封面比较讨厌它,闲置几年之后,一 ...

  3. Ubuntu 12.04 64bit上安装Apache Traffic Server 4.1.2

    说明: 对于企业级服务器来说,一般是使用Redhat或是CentOS上来跑Apache traffic server作为代理缓存服务器, 一般使用Ubuntu的机会很少,我这里探讨安装在Ubuntu ...

  4. 在Ubuntu 14.04 64bit上搭建单机本地节点Spark 1.3.0环境

    (running Spark in local mode on single computer) 1.参见本博客前面的文章完成以下准备工作: (1)安装JVM (2)安装Scala (3)安装Pyth ...

  5. 在Ubuntu 14.04 64bit上搭建Scala开发环境

    1.安装JDK 因为Scala是运行在JavaVirtual Machine(JVM)之上的,所有需要首先安装Linux版本的jdk. 我们在baidu搜索"jdk6下载"搜索到官 ...

  6. 在Ubuntu 14.04 64bit上编译安装Crtmpserver trunk svn 811版本!

    这里仅在 在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务 基础上补充一下在Ubuntu 14.04上编译安装Crtmpserver的方法,以作备忘.因为Ubuntu 1 ...

  7. Ubuntu 12.04 64bit或者CentOS 6.3 64bit上搭建OpenRTMFP/Cumulus服务器

    Ubuntu 12.04 64bit或者CentOS 6.3 64bit上搭建OpenRTMFP/Cumulus服务器 2013-12-25 1.从官网下载源码包 cd ~/progrom_devel ...

  8. 在Ubuntu 14.04 64bit上安装Markdown和绘图软件Haroopad

    简介 Haroopad:一款让你欲罢不能的Markdown编辑器 身为大程序员,我本来是不需要 Markdown 编辑器的,但是 Haroopad 让我简直欲罢不能,不能再爱更多.跨平台,代码高亮,V ...

  9. 在Ubuntu 14.04 64bit上安装StarUML 2.5版本

    StarUML是来自韩国的一个优秀的UML绘图软件, 原来是免费软件, 现在需要付费购买.当然免费使用功能会有诸多限制. 它支持Windows, Linux和Mac OS等平台. 下面是我在Ubunt ...

最新文章

  1. C++/C++11中std::set用法汇总
  2. 统计学习方法第十四章作业:聚类—层次聚类聚合/分裂算法、K_means聚类算法 代码实现
  3. java 静态代码块_关于Java你不知道的那些事之代码块
  4. QT5.14在Win10和Win7下的安装
  5. android uid文件存储目录,Android系统文件目录结构
  6. 代码比较工具DiffMerge的下载和使用
  7. 腾讯求职经历(后附大量面试题)
  8. Codeforces 311D Interval Cubing 数学 + 线段树 (看题解)
  9. 医学图象存储、检索和显示的新技术及新动向
  10. 462 字节 C 代码实现雅虎 logo ACSII 动画
  11. poj2421修建道路
  12. 2016第二十二届全国青少年信息学奥林匹克联赛初赛
  13. LocalOnlyHotspot学习总结(二)
  14. Day7:一款无线抢答系统的设计思路
  15. 直放站引起上行高干扰 小区处理案例
  16. 文储研习社第07期 | 量子计算机面世,区块链价值归零?
  17. 小程序实战篇(一)——车辆使用登记
  18. L2-030 冰岛人 (25 分)(unordered_map)
  19. TCP/IP基础知识复习
  20. JOS lab4 Preemptive Multitasking Part B

热门文章

  1. Oracle --获取绑定变量的值.
  2. c++ Qt向PHP接口POST文件流
  3. 降低噪声和电磁干扰的原则
  4. c++ 的重载、覆盖、隐藏
  5. poj2965-poj2965-The Pilots Brothers' refrigerator
  6. datagrid DataFormatString
  7. java基于http协议编程_Java中基于HTTP协议网络编程
  8. java basicstroke_使用java.awt.BasicStroke动画化虚线
  9. http状态404 vscode_VS Code 调试完全攻略(5):基于浏览器的 React 应用
  10. java 窗体隐藏和关闭_java JFrame窗体真正关闭