srs_rtmp connect vhost/app failed

在上一篇文章中已经实现了arm版本的nginx,且已经可以在目标板子上运行了,如:

同时也可以用netstat 查看nginx监听的端口号,如:

 

 arm版本的nginx已经搭建好,且nginx里rtmp模块也已经支持,接下来就是尝试在板子上将h264裸码流推送到nginx服务,然后在pc上用vlc进行拉流,在网上搜索到一篇博文,可以参考:将h.264裸码流推送到RTMP服务器_OSSRS-CSDN博客

我也是参考了里面的操作,首先是下载了srs_h264_raw_publish.c,及srs_librtmp.h, srs_librtmp.cpp, h264码流文件无法下载了,我是自己在公司设备上搞下来的一段上264码流,有需要的朋友欢迎@我。文件如下:

 为了编译方便,我将srs_h264_raw_publish.c 修改为了cpp,只要修改几处goto就可以。编译依赖库libcrypto.so,所以如果出现这些错误时需要编译安装libcrypto.so库:

一切编译完成后,拷贝到arm板子上运行时,却出现这个错误:

 可以看到握手已经成功了,但在连接vhost时失败了,出现错误的代码位置:

对srs_librtmp不熟悉,不知道这个是什么错误引起的,网上搜索一番也未能找到答案。最后终于找到原因了,因为我们调用的命令是:./rtmpPublisher ./videoFrame.h264 rtmp://127.0.0.1:1935/live/livestream 25;我们的配置里相应的也要有配置,其配置如下:

其中关键字“live”就是对应命令行里 rtmp://127.0.0.1:1935/live/livestream 里的live,如果这两个不一样,就会出现上面那个错误“connect vhost/app failed”。最后成功的样子:

已经在读取h264文件进行推送了。配置文件一定要修改对,可以用nginx -t 进行测试,这样可以测试nginx配置文件是否存在语法错误,或是无法识别的module,如果nginx不支持rtmp模块,而在nginx.conf里添加了rtmp模块的配置,则会报错无法识别等信息。配置如下:

 同时也可以查看nginx用的是哪个路径下的nginx.conf配置文件,如我的板子上存在多个nginx.conf配置文件,nginx用的是/usr/sbin/conf/下的nginx.conf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值