mac下利用ffmpeg+nginx搭建直播服务器的总结

最近自己一直在研究直播相关的技术,前一阵子用了腾讯云简单的实现了直播,腾讯云实现起来很方便,而且SDK对一些关键问题的处理也做得很好,开发者直接在腾讯云平台上申请认证后便可进行腾讯云直播的测试开发了.除了像腾讯云,七牛云这些三方平台外,开发者也可以搭建rtmp+nginx本地环境,通过HLS协议进行直播测试.这里记录今天的整个研究过程以及那些被坑了的地方,希望能对大家有所帮助.

一.nginx的配置

有关nginx的配置可以参考这篇文章.这里主要写一下配置过程中踩到的坑!

1.首先通过homebrow安转nginx的时候,因为要用到rtmp协议,brew install nginx-full 后面一定要带上--with-rtmp-module!否则在接下的操作过程中又会遇到接下来我踩到的雷!

        

在终端输入 brew info nginx-full会看到有关nginx是一些详细信息,其中这几条命令非常有用,在下文中会用到其中的一条或多条.

安装成功后

nginx安装所在位置  /usr/local/Cellar/nginx-full/1.10.1/bin/nginx



  • nginx配置文件所在位置  /usr/local/etc/nginx/nginx.conf


  • nginx服务器根目录所在位置  /usr/local/var/www

2.正如第一点所说的,如果在安装nginx的时候忘记了--with-rtmp-module,那么在打开nginx.conf文件配置rtmp协议的时候会出现 "unknown directive “rtmp” in /etc/nginx/nginx.conf:76"的报错!原因不多解释了,解决方法是删除nginx重新安装.在执行删除命令brew uninstall nginx 的时候,我有遇到了新的问题:终端返回Error: No such keg: /usr/local/Cellar/nginx ,意思是说找不到这个目录.于是看了下nginx的所在的文件夹是nginx-full而不是nginx.因此这个问题该如何解决大家也知道了吧!
在配置rtmp的过程中还遇到了一个小问题:nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)
不知为什么,我的pid文件突然间消失了......解决这个问题的方法是:在终端依次输入nginx  nginx -s reload.

3.在启动nginx的时候,肯定会有小伙伴遇到下面的问题

这说明我的8080端口和1935端口(在nginx.conf中配置的rtmp协议端口)被占用.解决这个问题的方法也很简单,首先看一下那个进程占用了这些端口,发现后将其kill掉便搞定!

在终端输入lsof -i tcp:8080查看8080端口被哪个进程占用


   随后将其杀死!kill 12441(这里输入自己的PID号).
接下来,
(1)重新运行nginx
(2)重新加载配置文件 nginx -s reload
(3)重新加载日志    nginx -s reopen
(4)停止nginx   nginx -s stop
(5)有序退出nginx  nginx -s quit
我在做这个步骤的时候,只执行了前两步,随后关闭终端,打开反复执行了两次就搞定了.上述步骤不成功的小伙伴也可以试试我的解决方案.
到这里,nginx的配置也就差不多了,如果小伙伴们一路走下来很顺畅,那么这些话当我没说好了大笑.


二.ffmpeg
Mac 下 ffmpeg就不说了,Windows 的小伙伴可Google,翻不出去的话就直接找度娘了大笑.
ffmpeg的常用命令还是有必要了解一下的,详细可以参考这篇文章

到这里,本地的环境已经配置得差不多,接下来要做的就是实现推流拉流了!

推拉流在iOS端,可以分别通过LFLiveKit还有B站开源的ijkplayer来实现!


这里没有记录具体的实现过程,因为网上的资料已经很详细了.每个人在研究新事物的过程中难免会遇到各种各样的问题,希望上述总结能够对大家有所帮助!博主学识浅薄,希望多多得到大家的批评指正.也欢迎大家私信与我一起交流!
参考的一些文章:



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值