小白学习音视频系列(一) 搭建自己的直播服务器

小白学习音视频系列(一)

利用crtmpserver和FFmpeg快速搭建自己的直播服务器

image

关注微信号:cpp手艺人,获取文章

1.准备环境

1.需要首要ubuntu系统环境,我的是ubuntu 14.04 64位系统真机,你用虚拟机也可以的。
2.连接网络,因为我们需要下载编译。
3.使用xshell连接到机器里面。(非必需
4.安装vlc播放器,这个自己网络百度下,等会我们拉流的时候需要用播放器测试。

2.命令行编译

这里的操作及其容易发生错误,希望大家一定要按照我的步骤来操作。

1.安装wget和cmake, g++

apt-get install wget cmake g++。

2.安装ssl的开发库

apt-get install libssl-dev

3.下载crtmp源码

wget https://codeload.github.com/j0sh/crtmpserver/zip/centosinit

4.解压conteosinit,如果提示命令没有安装请使用apt-get install unzip安装

unzip centosinit

5.解压完之后会生成一个crtmpserver-centosinit目录,执行

cd crtmpserver-centosinit/builders/cmake/

image

6.编译

cmake . && make (生成makefile,并执行make编译)

image

3.准备推流

1.下载ffmpeg

去FFmpeg官网下载对应系统的文件,比如我下载的windows x64 share, 给出下载:https://ffmpeg.zeranoe.com/builds/

image

2.启动crtmp服务器

./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua

image

3.使用FFmpeg推送本地文件,执行下面命令的时候你需要到你刚刚下载ffmpeg目录中,或者是将ffmpeg目录放到你的系统PATH环境变量中

ffmpeg -i 1.flv -c copy -f flv rtmp://192.168.26.31/live/test1
-i 表示输入的文件
-c copy 表示直接copy文件,这样ffmpeg就不会进行编码
-f flv 表示格式
rmtp 表示使用rtmp协议,后面的ip换成你自己的ip地址就可以

执行完命令之后如下图所示

image

4.使用vlc拉流

image

image

5.使用ffplay拉流

ffplay rtmp://192.168.1.44/live/test1 -fflags nobuffer

6.如果vlc能看到画面,那么说明你已经成功搭建了。下面的就不用看了。

4.解决问题

  1. Default implementation of ProcessInvokeGeneric: Request: _checkbw 报出这样错误
    修改源码:sources/thelib/src/protocols/rtmp/basertmpappprotocolhandler.cpp
    在BaseRTMPAppProtocolHandler::ProcessInvoke中增加处理_checkbw逻辑

image

修改完之后再执行 ./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua

2.此时可能报出ProcessInvokeCheckBandwidth:checkBandwidth is disabled.
修改crtmpserver.lua中的配置,在第166行,将注释解开就可以了

image

3.可能上述错误都没有,vlc就是看不到画面
有可能就是流已经推完了,尝试着先让vlc拉流,然后再用FFmpeg去推流

4.在链接的过程中,ubuntu的防火墙会把端口禁用了。crtmp使用的端口是1935
sudo uwf enable 1935

至此直播服务器已经搭建完毕了。这个过程可能不是一帆风顺的,但是你总会成功的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值