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. 怎样抓获或忽略像control-C这样的键盘中断?

    基本步骤是调用signal():#include <signal.h>singal(SIGINT, SIG_IGN); 就可以忽略中断信号, 或者:extern void func(int ...

  2. HDU 4722:Good Numbers(数位DP)

    类型:数位DP 题意:定义一个Good Number 为 一个数所有位数相加的和%10==0.问[A,B]之间有多少Good Number. 方法: 正常“暴力”的定义状态:(i,d,相关量) 定义d ...

  3. LeetCode OJ--Remove Duplicates from Sorted Array

    http://oj.leetcode.com/problems/remove-duplicates-from-sorted-array/ 删除数组中的重复元素,要求为原地算法. 进行一遍遍历,记录下一 ...

  4. nVidia的物理系统

    PhysX PhysX(wiki en  中文,physx wiki   physx wiki2)是nVidia公司一款跨平台实时物理引擎,可使用硬件(GPU.PPU: Physics Process ...

  5. webstrom配置一键修复ESLint的报错

    因为项目本身有用eslint,而我这边没用,我这边提交上去别人update后就会提示很多eslint的格式错误提示,所以就在该项目里使用了eslint. 发现一般有两种安装方式,我使用的是webstr ...

  6. Xamarin XAML语言教程使用Visual Studio创建XAML

    Xamarin XAML语言教程使用Visual Studio创建XAML Xamarin.Forms允许开发人员通过XAML语法对程序的所有用户界面元素进行详细的定制,如文本.按钮.图像和列表框等. ...

  7. Codechef FNCS Chef and Churu

    Disciption Chef has recently learnt Function and Addition. He is too exited to teach this to his fri ...

  8. 使用jersey组件向图片资源服务器上传图片报403,405,409 Method Not Allowed错误

    一.错误如下 在使用Jersey进行图片跨服务上传时遇到了如下问题: 二.代码如下 1.pom.xml <dependency> <groupId>com.sun.jersey ...

  9. DBUtils工具类学习一

    Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能 1.特征 DBUtils是java编程中 ...

  10. SilverLight-DataControls:四、The PagedCollectionView(分页的集合视图) 对象

    ylbtech-SilverLight-DataControls-PagedCollectionView:The PagedCollectionView(分页的集合视图) 对象 1.A, Buildi ...