Google + 实践:最终直播成功。

记录一下。

这样。兴许就能够对代码进行改造,利用开源码实现:Android平台下。搭建rtmpserver。浏览器端利用flash播放视频。

代码架构为:ffmpeg + crtmpserver + flash ,进一步拆分:flv muxer + librtmp + crtmpserver + flash

进入正题:

1. 下载crtmpserver ,地址:http://www.rtmpd.com/

2. 下载ffmpeg,下载地址:https://www.ffmpeg.org/

3.  下载librtmp。下载地址:https://rtmpdump.mplayerhq.hu/  注:svn下载地址: svn://svn.mplayerhq.hu/rtmpdump

4.  下载libx264。下载地址:http://www.videolan.org/developers/x264.html

4. 下载Wowza media server, 下载地址: http://www.wowza.com/  注意:不要忙于下载。后面会提到为啥要下这个。

编译crtmpserver: 过程曲折。请參考:

1. 源代码根文件夹的README。

2. Google。

3. 我遇到的主要问题是:我将源代码包放在了windows的D盘下,在centos虚拟机中共享的D盘,然后编译,编译只是。

解决的方法是:将源代码复制到虚拟机的home文件夹,然后再编译。成功。

编译ffmpeg,最好加上librtmp。libx264的支持。

1. 编译librtmp,libx264库。

1. ./configure --enable-gpl --enable-libx264 --enable-librtmp, 请參考:http://blog.csdn.net/lcl81/article/details/6455718

2. 不出意外就成功了。ffmpeg在linux上,比較easy编译。

播放vod文件:

1. cd  crtmpserver/builders/cmake

2. 改动crtmpserver.lua。加入media file绝对路径。我的机器上配置是这种:

mediaFolder="/root/crtmpserver/media"

3. 将视频源放入"/root/crtmpserver/media"目录下。如sample.mp4. 注:sample.mp4 为wowza的一个演示样例视频源。

4. ./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua  注:如成功。

出现 GO! GO! GO!

5. 播放vod文件:./ffplay rtmp://localhost/flvplayback/mp4:sample.mp4 , 祝成功。。

播放ffmpeg直播源:

1. cd  crtmpserver/builders/cmake

2. 改动crtmpserver.lua。向flvplayback应用中加入

{

ip="0.0.0.0",

port=7776,

protocol="inboundRtmp"

},

3. ./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua  注:如成功。出现 GO! GO! GO!

4. ./ffmpeg -re -i ~/wind/movie/sample.mp4 -vcodec copy -acodec copy -f flv rtmp://127.0.0.1:7776/flvplayback/test

5.  ./ffplay "rtmp://localhost/flvplayback/test live=1"

注意:需加入live=1, 否则播放失败。请參考 https://groups.google.com/forum/#!msg/c-rtmp-server/2QXxIIr11vE/rw6vBR0UZXAJ

补充:

也能够使用flash播放。可是參考crtmpserver的README,我没有成功。但我使用了wowza的一个演示样例成功了。

这个演示样例在wowza安装文件夹下:Wowza Streaming Engine 4.0.5\examples\VideoOnDemandStreaming\FlashRTMPPlayer 。这个样例在我的资源中。

地址例如以下:http://download.csdn.net/detail/lcl81/7790153

这也是推荐下载wowza media server的原因。

Android下编译openssl,參考:http://wiki.openssl.org/index.php/Android

Android下编译ffmpeg,參考:http://download.csdn.net/detail/lcl81/7828817

Android下编译crtmpserver,參考:http://download.csdn.net/detail/lcl81/7833411

利用crtmpserver搭建rtmp服务器的更多相关文章

  1. 利用docker搭建rtmp服务器(1)

    以后的项目里面可能需要用到直播,所以就先看看 本来想在自己MAC上搭建nginx的,后来怕把自己的机子搞乱,刚好就学习了下docker,感觉docker强大就在于是一个操作系统软件的版本管理系统,可以 ...

  2. nginx 搭建 rtmp 服务器

    前言 最近接手了一个跟视频监控相关的项目,用了近年来越来越流行的 Web 服务器 nginx 加上 nginx-rtmp-module 搭建 rtmp 服务器.使用了阿里云的服务器,系统 Ubuntu ...

  3. windows环境下基于nginx搭建rtmp服务器

    基于nginx搭建rtmp服务器需要引入rtmp模块,引入之后需重新编译nginx linux环境几个命令行就能实现编译,笔者未尝试,网上有很多教程. windows环境还需要安装一系列的编译环境,例 ...

  4. 悄摸直播(三)—— 搭建rtmp服务器(smart_rtmpd - rtmp服务器搭建)

    悄摸直播 -- javaCV实现本机摄像头画面远程直播 搭建rtmp服务器 一.素材 rtmp服务器:smart_rtmpd ffmpeg工具:ffmpeg.exe 二.搭建 1.下载smart_rt ...

  5. 利用docker搭建RTMP直播流服务器实现直播

    一.rtmp服务器搭建 环境: centos 7.* 1.先安装docker(省略) 2.下载docker容器 docker pull alfg/nginx-rtmp 3.运行容器(记得打开防火墙端口 ...

  6. 搭建 RTMP 服务器

    主要步骤 具体步骤 FAQ docker 搭建版 参考 主要步骤 下载 nginx 的 rtmp 模块 编译nginx,带 hls,rtmp 配置 nginx.conf,设置 rtmp 的推流文件路径 ...

  7. 利用Serv-U搭建FTP服务器

    以前在学校的时候,学校的整个宿舍楼都是在一个局域网中,经常有人用个人电脑搭个网站或者FTP啊什么的,主要是进行一些影视资源的传播活动.不乏 有些资源充沛的有志青年利用业余时间翻译某岛国影视资源,利用局 ...

  8. CentOS利用postfix搭建邮件服务器

    之前我用nodemailer通过163邮箱来发送邮件,不过没过几天就一直ETIMEDOUT,不知道什么原因,想着还是自己搭一个来发邮件可能靠谱点(flag?) 安装postfix CentOS 7 自 ...

  9. 利用nginx搭建https服务器

    一.HTTPS简介 HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块.服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加 ...

随机推荐

  1. 在vue路由当中使用keep-alive避免多次加载组件,减少消耗

    今天在vue当中使用了full-page这个组件.但是发现在每次路由跳转完之后,再回到使用fullpage的这个页面,fullpage会报错,fullpage只能初始化一次. 这个时候给路由使用kee ...

  2. hdu 1558 线段相交+并查集路径压缩

    Segment set Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  3. Linux System Programming 学习笔记(十) 信号

    1. 信号是软中断,提供处理异步事件的机制 异步事件可以是来源于系统外部(例如用户输入Ctrl-C)也可以来源于系统内(例如除0)   内核使用以下三种方法之一来处理信号: (1) 忽略该信号.SIG ...

  4. comet realization with ajax&php

    1.prepare front-end code, meta content-type cannot be ignored! as to the xhr, status should be 3 < ...

  5. 学习javascript设计模式之代理模式

    1.代理模式为一个对象提供一个代用品或占位符,以便控制对它的访问. 2.不用代理模式: 客户 -> 本体  使用代理模式:  客户 -> 代理 -> 本体 3.例子场景1 点击操作与 ...

  6. python print 在命令行打印带颜色

    红色 :print "\033[1;31m%s\033[0m" %("ALY : %s" %(['a','b']))

  7. 本地hosts文件

    (1)什么是Hosts文件? Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网 ...

  8. 洛谷——P1767 家族_NOI导刊2010普及(10)

    P1767 家族_NOI导刊2010普及(10) 题目描述 在一个与世隔绝的岛屿上,有一个有趣的现象:同一个家族的人家总是相邻的(这里的相邻是指东南西北四个方向),不同的家族之间总会有河流或是山丘隔绝 ...

  9. linux jar 命令使用

    原文链接:http://blog.chinaunix.net/uid-692788-id-2681136.html JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包.当然也是 ...

  10. Java -----transient 和static

    越来越喜欢深究java基础了,讲讲 transient  和static 对序列化的影响.废话少说,直接上代码就可以了 package serializable; import java.io.Ser ...