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

  1. 小白学习音视频系列(一)
    1. 利用crtmpserver和FFmpeg快速搭建自己的直播服务器
      1. 1.准备环境
      2. 2.命令行编译
      3. 3.准备推流
      4. 4.解决问题

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

利用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 allow 1935

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


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 635672377@qq.com

文章标题:1.利用crtmpserver和FFmpeg快速搭建自己的直播服务器

文章字数:702

本文作者:刘世雄

发布时间:2020-06-04, 15:23:54

最后更新:2020-06-05, 03:09:22

原始链接:http://lsxcpp.com/2020/06/04/1-%E5%88%A9%E7%94%A8crtmpserver%E5%92%8CFFmpeg%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BA%E8%87%AA%E5%B7%B1%E7%9A%84%E7%9B%B4%E6%92%AD%E6%9C%8D%E5%8A%A1%E5%99%A8/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录