请选择 进入手机版 | 继续访问电脑版

ChinaFFmpeg

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6896|回复: 0

[Linux] SRS推流新手初体验,感谢大师兄和Mr小罗

[复制链接]
发表于 2016-9-9 16:38:15 | 显示全部楼层 |阅读模式
感谢,大师兄 和Mr小罗 和群里的其他大神的帮忙,让我一个新手初次了srs流媒体部署发布等一系列的流程。回顾自己遇到的坑把记录下。
1.liunx下安装srs ,之前一直不知道srs 大部分都关闭了,导致git下的项目都没有文件,心里很是纳闷,直到加入群里才找到了有维护的项目源,
然后就按照gitbub的步骤,获取
   git clone https://github.com/wenjiegit/srs
cd srs/trunk,顺利获取。下面进行编译,这里出现不明白的地方,按照https://github.com/ossrs/srs/wiki/v1_CN_SampleDemo的说明 直接bash scripts/build.sh 进行编译就成功了。但是按照群里的SRS搭建方法文档里面的方法./configure --disable-all --with-ssl --with-hls --with-nginx --with-ffmpeg --with-transcode
        make && sudo make install,一直没编译成功,不知道是哪里出问题,有时间还得继续检查下到底是哪里的问题。
编译安装成功以后,系统会提示 SRS 安装成功,各个demo的地址都会显示出来。可以直接测试。基本上本地测试和SRS2.0本身的demo都可以正常播放视频,这个比较简单。
可是我需要把IPC上的视频直接推流到SRS上,先考虑SRS上没有可以推流的方法。结果找到了ffmpeg,但是ffmpeg 后面的格式怎么写呢,input URL怎么写呢。。。。。。。。。。。。于是百度了好几天,也在群里问了好几天,(这里要感谢大师兄和Mr小罗)终于找到了关于大华,海康 rtsp推流格式“rtsp://user:pwd@PI:port/cam/realmonitor?channel=1&subtype=0”。OK  input URL有了,可以 ffmpeg 推送的格式到底怎么来做呢,看不懂,照着
       ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv
        -vcodec copy -acodec copy
        -f flv -y rtmp://172.16.88.89/live/livestream;
        sleep 1;
写吧路径改成IPC rtsp推流格式,无反应。
是不是自己格式有问题啊,think,think,think,自己根据可能的格式试了试几次发现,ipc 的推理格式得用双引号,所以改。。。。。。,再试。。。

提示:,No route to host ,原来才缓过神来,两个IPC地址和SRS地址不在一网段里面,都得映射出去。。。好嘛开始映射。

再试:又出现,UDP timeout, retrying with TCP,原来IPC是通过UDP来传输的,现在只做了TCP的映射,没有UDP的映射(UDP的映射好像比较麻烦),怎么办呢 问群里,有大神说ffmpeg,可以强制采用tcp,怎么写?-rtsp_transport tcp。OK 改成TCP协议后,继续试:

,又有问题av_interleaved_write_frame(): Connection reset by peer,不明白什么意思,截图发群里,这时候大师兄发话了,这里得上个图了,屌不屌,明显是时间戳不对嘛,肯求大师兄教我破解之法,
大师兄顷刻间挥出,-vcodec copy -acodec copy改成-vcodec libx264 -preset ultrafast -acodec aac。瞬间可以了 好NB 有没有。现在想想只是知道 -vcodec 代表视频编码设置, -acodec代表音频编码设置  但具体设置成什么,真不懂,先记下来.
那么最终的推送格式是
./objs/ffmpeg/bin/ffmpeg -rtsp_transport tcp -re -i "rtsp://admin:admin@IPORT/cam/realmonitor?channel=1&subtype=0" -vcodec libx264 -preset ultrafast -acodec aac -f flv  rtmp://172.16.88.89/live/livestream


现在,SRS有流在推送了,那么能不能看到视频呢,怀着忐忑的心情打开了,demo的页面,把播放地址变成推流里面设置的地址,一看。。。。。。。。。。。。有视频了。几天冥思苦想终于有点结果了,小兴奋啊。。到此时,基本流程才算是走通了.


下一步怎么能将视频放到WEB和手机上呢,于是又是长时间的百度,最后得到HLS格式的视频符合我的要求。。。。。。。好研究HLS怎么弄,按照GIT上的
第三步,启动分发hls(m3u8/ts)的nginx。详细参考HLS分发
sudo ./objs/nginx/sbin/nginx
备注:为了突出HLS的配置,我们在HLS的实例中没有使用SRS内置的HTTP Server,可以配置几行就可以不用nginx。参考:Usage: HTTP
备注:请确定nginx已经启动,可以访问nginx,若能看到nginx is ok则没有问题。
第四步,编写SRS配置文件。详细参考HLS分发
将以下内容保存为文件,譬如conf/hls.conf,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。
# conf/hls.conflisten              1935;max_connections     1000;vhost __defaultVhost__ {    hls {        enabled         on;        hls_path        ./objs/nginx/html;        hls_fragment    10;        hls_window      60;    }}
第五步,启动SRS。详细参考HLS分发
./objs/srs -c conf/hls.conf

第六步,启动推流编码器。详细参考HLS分发
步骤完成了,可是RTMP能看,HLS还是不能看。。。文档我都看N遍了可死活不行。
问群里,问大师兄,大师兄因为去阿里了,没时间陪玩耍了,这时候Mr 小罗出现了。求教中~~~~~~~~~~~~~~~~~~~~·

原来需要在http.hls.conf中配置,而不是在hls.conf中。。。。。。。我晕了端口需要改成8080. 我试试试,配好以后再播放,日了怪了怎么还没有。最后终于鼓起勇气向小罗发起了远程协助。。。。。。。。




原来设置对了,只不过srs服务没关,再启动就没用。
至此,基本流程走通了 WEB 手机上都能播放了,


再次感谢两位大神,还有其他帮助我的。。。。下一步需要做一个启动服务,多流推送。还得需要各位帮助,大家一起进步吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|ChinaFFmpeg

GMT+8, 2020-4-7 18:31 , Processed in 0.044549 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表