目录
前言
环境准备及编译
测试
RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。——摘录自百度。 如果大家想对RTMP有更深的认识,可以参看这篇文章:《带你吃透RTMP》。
本文要处理的是:用crtmpserver搭建服务器,用来做推拉流的中转。也就是ffmpeg推流到crtmpserver服务器,然后VLC从服务器拉流播放。那么这个服务器怎么搭建呢,下面就详细的记录一下。
1、win10上,装VMWare Workstation, 然后安装Ubuntu16.04.
2、准备各种工具,看看是否需要更新。
// 如果没有cmake, 那就安装
apt-get install wget cmake
// 如果没有libssl-dev , 通信用到的库, 就先安装
apt-get install libssl-dev
3、 准备文件并编译
// 新建一个文件夹
mkdir crtmp
// 进入这个文件夹
cd ctrmp
// 然后下载文件:
wget https://codeload.github.com/j0sh/crtmpserver/zip/centosinit
// 解压
unzip centosinit
// 得到 crtmpserver-centosinit, 进入这个文件夹
cd crtmpserver-centosinit
// 进入到builder
cd builders
// 进入到cmake
cd cmake
// 可以看到这里有Makefile文件,执行
cmake
make
// 编译完之后,执行下面这句话,就可以执行了
./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua
// 在上面那句话执行的过程中,不要中断,就可以进行测试了。
// 如果想要结束,直接ctrl+c ,就能中断
方式一:
准备好我们下载的ffmpeg—shared版本,进入bin,找到 ffmpeg.exe, 在这个文件中放一个flv文件。
然后在这个文件夹的目录栏中,输入 cmd, 进入命令行:
ffmpeg -i China.flv -f flv rtmp://192.168.87.6/live/test1
打开VLC, 媒体——>打开网络串流,输入:rtmp://192.168.87.6/live/test1, 播放。
可以看到推流的文件,进行播放了。
方式二:
准备好ffmpeg-dev版本,建一个win32的控制台工程,将include lib dll等,都包含进去。然后写代码,把文件读入,进行推流。拉流依然用VLC。
播放文件推流:推流端需要控制进度、速度。根据文件的fps进行控制。这一部分,还是需要特别注意的。
稍后上传代码。