srs(simple Rtmp Server )的一些说明

srs 是国人自己开发的一款视频服务器,采用支持rtmp和hls协议,可以做成容器,让客户端把流推过来来,也可以结合ffmpeg自己主动拉流,详细的说明可以查看srs的wiki:

https://github.com/ossrs/srs/wiki/v2_CN_Home

srs下载地址:http://ossrs.net/srs.release/releases/index.html

srs网页播放器:http://www.ossrs.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

时间: 2024-10-08 11:12:59

srs(simple Rtmp Server )的一些说明的相关文章

Simple Rtmp Server的安装与简单使用

Simple Rtmp Server是一个国人编写的开源的RTMP/HLS流媒体服务器. 功能与nginx-rtmp-module类似, 可以实现rtmp/hls的分发. 有关nginx-rtmp-module的可参照: http://blog.csdn.net/redstarofsleep/article/details/45092147 编译与安装过程十分的简单   ./configure --prefix=/usr/local/srs --rtmp-hls   make   make in

推荐一款优秀的开源流媒体服务器系统:SRS(Simple RTMP Server)

最近视频流媒体直播的应用很火,各种手机端的直播.美女聊天室.财经直播等等.由于项目的需要,需要寻找一款合适的流媒体直播系统,如果从头开发,显然成本和周期都不能在可接受的范围内.幸运的是,我找到了SRS这款优秀的直播系统,该系统官方地址为:http://www.ossrs.net/srs.release/releases/ 首先不得不提的是:SRS是国人开发,国人开发的开源系统近几年越来越多,是非常令人惊喜的事情,并且有很多非常优秀的,非常令人开心. 另外不得不提的是:SRS的文档非常齐全,特别是

Build Simple HTTP server

1. The server just support POST&PUT method 2. It is a Python server, and save upload files in special folder 3. How to do it,  it is apple example code, see: https://developer.apple.com/library/ios/samplecode/SimpleURLConnections/Introduction/Intro.h

simple HTTP server with upload

1 #!/usr/bin/env python 2 3 """Simple HTTP Server With Upload. 4 5 https://github.com/tualatrix/tools/blob/master/SimpleHTTPServerWithUpload.py 6 7 This module builds on BaseHTTPServer by implementing the standard GET 8 and HEAD requests in

SRS之RTMP handshake

1. SrsRtmpServer::handshake int SrsRtmpServer::handshake() { int ret = ERROR_SUCCESS; srs_assert(hs_bytes); /* 先尝试进行 complex handshake,若失败则再次尝试 simple handshake */ SrsComplexHandshake complex_hs; if ((ret = complex_hs.handshake_with_client(hs_bytes,

[SRS流媒体]RTMP/HLS 直播服务器simple-rtmp-server安装

一个采用MIT协议授权的国产的简单的RTMP/HLS 直播服务器,其核心的价值理念在于简单高效. 使用方法: tep 1: build srs tar xf simple-rtmp-server-*.*.tar.gzcd simple-rtmp-server-*.*/trunk./configure --with-ssl --with-hlsmake step 2: start srs ./objs/simple_rtmp_server -c conf/srs.conf step 3(optio

Writing a Simple Action Server using the Execute Callback

fibonacci_server.cpp /* 黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*) */ #include <ros/ros.h> #include <actionlib/server/simple_action_server.h>//action lib #include <learning_actionli

A Simple Web Server

介绍 在过去20几年里,网络已经在各个方面改变了我们的生活,但是它的核心却几乎没有什么改变.多数的系统依然遵循着Tim Berners-Lee在上个世纪发布的规则.大多数的web服务器都在用同样的方式处理消息 背景 多数在web上的服务器都是运行在IP协议标准上.在这协议家族里面我们关心的成员就是TCP,这个协议使得计算机之间的通信看起来像是在读写文件. 项目通过套接字来使用IP通信.每个套接字都是一个点对点的通信信道,一个套接字包含IP地址,端口来标识具体的机器.IP地址包含4个8Bit的数字

SRS(simple-rtmp-server)直播点播服务器【官方已跪】

前言: 由于个人工作的原因,公司采用了这个作为点播直播服务器,采用这个的原因只有一个,因为开源免费因为不要钱!因为不要钱!因为不要钱!因为很重要所以说三遍.如果不是这个原因,我也不会对此开源软件相识,作为创业公司当然是能省就省,买不起商业的点播直播软件,没人力做不了一个点播直播软件已经用过大半年,各方面使用的情况来看还挺可以的,今日趁我写博客的激情还在遂再写一篇. #本人的博客尽可能的多注释,注释不是给我看的,我都懂!没错,就是给不会的现在在看我的博客小白们看的!如果发现还有不懂的地方请留言哪里