记录20180112课程设计(视频直播服务器搭建)

SRSFFmpeg

安装

  1. FFmpeg安装

    关于ffmpeg的安装详细步骤和说明

  2. SRS安装

    • unzip SRS-Ubuntu14-x86_64-2.0.205.zip
    • cd SRS-Ubuntu14-x86_64-2.0.205.zip
    • bash INSTALL
    • /etc/init.d/srs start启动;/etc/init.d/srs stop停止

(Ingest采集实例)如何将其他流拉到SRS作为RTMP流

主要部分是编写SRS配置文件,此处是conf/ingest.conf,在SRS服务器启动时指定启动该文件:

  1. 配置播放本地视频文件

    listen              1935;
    max_connections     1000;
    vhost __defaultVhost__ {
      ingest livestream {
          enabled      on;
          input {
              # the type of input.
              # can be file/stream/device, that is,
              #   file: ingest file specifies by url.
              #   stream: ingest stream specifeis by url.
              #   device: not support yet.
              # default: file
    
              type    file;
    
              url     ./doc/source.200kbps.768x320.flv;
          }
          // 这里更改为你安装的ffmpeg的目录下的/bin/ffmpeg
          ffmpeg      ./objs/ffmpeg/bin/ffmpeg;
          engine {
              enabled          off;
              output          rtmp://127.0.0.1:[port]/live?vhost=[vhost]/livestream;
          }
      }
    }

    启动SRS(不必再使用etc/init.d/srs start来启动):

    ./objs/srs -c conf/ingest.conf

    type指定了输入的几种类型:

    • file:输入文件,url指定了文件路径。srs会给ffmpeg传递-re参数。
    • stream:输入为流,url指定了流地址。
    • device:暂时不支持。

    engine指定了转码引擎的参数:

    • enabled:指定是否转码,若off或者vcodec/acodec没有指定,则不转码,使用ffmpeg-copy。
    • output:输出路径。有两个变量可以使用:port为系统侦听的RTMP端口,vhost为配置了ingest的vhost

    engine默认为copy,当:

    engine的enabled为off,没有开启转码engine,则使用copy。

    engine的vcodec/acodec没有指定,则使用copy。

  2. 配置播放网络摄像头视频

    • 根据上面配置中的注释说明,在播放url网络流视频时,需要将type设置为stream,然后设置的url的地址即为网络摄像头的地址

      listen              1935;
      max_connections     1000;
      vhost __defaultVhost__ {
       ingest livestream {
           enabled      on;
           input {
               # the type of input.
               # can be file/stream/device, that is,
               #   file: ingest file specifies by url.
               #   stream: ingest stream specifeis by url.
               #   device: not support yet.
               # default: file
      
               type    stream;
      
               url     网络摄像头的地址;
           }
           // 这里更改为你安装的ffmpeg的目录下的/bin/ffmpeg
           ffmpeg      ./objs/ffmpeg/bin/ffmpeg;
           engine {
               enabled          off;
               output          rtmp://127.0.0.1:[port]/live?vhost=[vhost]/livestream;
           }
       }
      }
    • 启动FFmpeg推流(必需)

       for((;;)); do \
           ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \
           -vcodec copy -acodec copy \
           -f flv -y rtmp://192.168.1.170/live/livestream; \
           sleep 1; \
       done

      参数说明参考:

      http://blog.csdn.net/hemingwang0902/article/details/4382205

    • 启动srs,加载配置文件(一定要记住启动srs,不走多了就容易忘…)

      ./objs/srs -c conf/ingest.conf
    • 使用ifconfig查看服务器地址

    • 打开VLC,播放网络视频rtmp://服务器IP/live/livestream;

SRS 性能测试

Performance Banchmark,官网这一部分如果只是做srs的性能测试的话,不用理会nginx-rtmp相关的部分即可。

​ 这里如果是将srs-bench先git到windows上,然后传输到linux系统中,执行./configure && make时,会出现类似下面的错误:

wlw@ubuntu:/tmp/srs-bench$ bash ./configure 
: ambiguous redirect 1
./configure: line 31: syntax error near unexpected token `$'\r''
'/configure: line 31: `    )

​ 看样子是windows和linux中的回车与换行的差别…解决方法:是直接下载srs-brench的压缩包,或者在linux系统中执行git命令下载srs-brench。

剩下的我想不到其他的细节了…,上面都是亲身实践,并无虚构,这是因为课程设计才去了解这类知识,否则的话,不会知道有这类技术,感慨颇多。要学的东西还有很多,很多…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值