设为首页 收藏本站
查看: 2272|回复: 0

[经验分享] srs(simple Rtmp Server )的一些说明

[复制链接]

尚未签到

发表于 2018-10-18 13:10:25 | 显示全部楼层 |阅读模式
  srs 是国人自己开发的一款视频服务器,采用支持rtmp和hls协议,可以做成容器,让客户端把流推过来来,也可以结合ffmpeg自己主动拉流,详细的说明可以查看srs的wiki:
  https://github.com/o***s/srs/wiki/v2_CN_Home
  srs下载地址:http://o***s.net/srs.release/releases/index.html
  srs网页播放器:http://www.o***s.net/players/srs_player.html?stream=livestream&port=19350#
  ffmpeg下载地址:http://www.ffmpeg.org/download.html
  或者:wget  http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.latest.tar.gz
  自己工作中采用的编译参数:
  ./configure --prefix=/usr/local/srs --with-hls --with-hds --with-dvr --without-nginx --with-ssl --with-ffmpeg --with-transcode --with-ingest --with-stat --with-http-callback --with-http-server --without-stream-caster --with-http-api --with-librtmp --with-research --with-utest --without-gperf --without-gmc --without-gmp --without-gcp --without-gprof --without-arm-ubuntu12 --without-mips-ubuntu12 --log-trace
  make
  make install
  ln -sf /usr/local/srs/etc/init.d/srs /etc/init.d/srs
  srs做成容器的配置:
  listen              1935;
  max_connections     1000;
  pid                 objs/edge.pid;
  srs_log_file        ./objs/edge.log;
  vhost __defaultVhost__ {
  }
  srs集群的配置:
  listen              1935;
  max_connections     1000;
  pid                 objs/edge.pid;
  srs_log_file        ./objs/edge.log;
  vhost __defaultVhost__ {
  mode            remote;
  origin          127.0.0.1:19350;
  }
  把origin里面的127.0.0.1:19350改成可以提供数据源的srs服务器监听的socket,提供数据源的srs服务可以做成容器让别人推送,也可以自己分发
  srs配置分发rtmp流:
  listen              1935;
  max_connections     1000;
  pid                 objs/edge.pid;
  srs_log_file        ./objs/edge.log;
  vhost __defaultVhost__ {
  ingest livestream {
  enabled      on;
  input {
  type    stream;
  url    rtmp://58.218.152.98:1935/hls/j2--;
  }
  ffmpeg      ./objs/ffmpeg/ffmpeg-;
  engine {
  enabled          on;
  output          rtmp://127.0.0.1:1935/live/livestream;
  }
  }
  }
  type如果是文件的话要改成file,url是流的地址,采用这种配置需要安装ffmpeg
  srs配置hls分发:
  listen              1935;
  max_connections     1000;
  pid                 objs/edge.pid;
  srs_log_file        ./objs/edge.log;
  vhost __defaultVhost__ {
  ingest livestream {
  enabled      on;
  input {
  type    stream;
  url    rtmp://58.218.152.98:1935/hls/j2--;
  }
  ffmpeg      ./objs/ffmpeg/ffmpeg;
  engine {
  enabled          on;
  output          rtmp://127.0.0.1:1935/live/livestream;
  }
  }
  hls {
  enabled         on;
  hls_fragment    10;
  hls_window      60;
  hls_path        ./objs/nginx/html;
  hls_m3u8_file   [app]/[stream].m3u8;
  hls_ts_file     [app]/[stream]-[seq].ts;
  }
  }
  http_server {
  enabled         on;
  listen          8088;
  dir             ./objs/nginx/html;
  }
  hls是采用点播的方式实现直播,把视频差不多大小的片,每个片以.ts结尾,并生成一个  流名.m3u8  作为索引,所以看hls分发有没有生效直接查看http_server里面的dir目录有没有生成这两个文件
  下面是实际生产环境中遇到过的问题:
  1,视频采集不了,但是加-bsf:a aac_adtstoasc就可以采集
  解决方法:直接修改srs的配置文件edge.conf 在engine里面添加aparams并增加,例子如下:
  ingest livestream {
  enabled      on;
  input {
  type    stream;
  url http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8;
  }
  ffmpeg      /tmp/ffmpeg;
  engine {
  enabled         on;
  vcodec          copy;
  acodec          copy;
  aparams
  {
  profile:a   aac_low;
  bsf:a       aac_adtstoasc;
  }
  output          rtmp://127.0.0.1:1935/live/livestream;
  }
  }
  2.视频可以正常采集但是用vlc放不了,用完美解码和特殊软件可以
  解决方法:加-vsync drop参数(注意:这个只是个人的解决方法,恰好可以用,并不准确,更多的是编码问题),然后加-r 30 解决播放卡帧问题,最终ffmpeg采集参数如下:
  /usr/local/src/ffmpeg -r 30 -i rtmp://23.33.33.118/live/11  -vsync drop -vcodec copy  -c:v copy -report -an -f flv -y rtmp://127.0.0.1:1935/live/11
  3.视频播放正常,但是没有音频,查看日志提示:
  【warn】[9642][239][11] aac  ignore type=1 for  no sequence header.ret=0
  解决:用系统自带的ffmpeg或自己编译的ffmpeg,可能是有些编译好的ffmpeg二进制程序没有对应音频编码功能导致的,并在配置文件中 把acodec 选项选为对应音频编码格式,如果使用hls分片,有时候还要指定hls_acodec,例如:
  hls_acodec      aac;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-623226-1-1.html 上篇帖子: 基于成本的优化--CBO-------v$SQL视图 下篇帖子: rtsp server(live555)详细设计
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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