srs搭建直播服务器

1.安装srs

git clone https://github.com/ossrs/srs.git
cd srs/trunk
./configure && make

2.开启srs服务

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

3.安装ffmpeg

官网:http://ffmpeg.org/download.html
windows:下载解压后即可用(可根据需要配置环境变量)
linux:下载源码编译安装

4.ffmpeg推流

  • 查看设备:
ffmpeg -list_devices true -f dshow -i dummy 
  • 推本地视频文件:
ffmpeg  -re  -i F:/project/liu_zi_qi/liu_zi_qi.mp4 -c copy -f flv rtmp://39.106.207.193/live/cc
  • 推摄像头捕获的视频流:
ffmpeg  -f dshow -i video="Integrated Webcam" -q 4 -s 640*480 -aspect 4:3 -r 10 -vcodec flv -ar 22050 -ab 64k -ac 1 -acodec libmp3lame -threads 4 -f flv rtmp://39.106.207.193/live/cc
  • 参数:
    (1).-f fmt (input/output)
    强制指定输入或输出的文件格式。输入文件的格式通常是自动检测的,输出文件的格式由该文件的扩展名猜测,所以在大多数情况下不需要此选项。

    (2).-c[:stream_specifier] codec (input/output,per-stream)
    -codec[:stream_specifier] codec (input/output,per-stream)
    用于对一个或多个数据流指定一个编码器(一个输出文件之前使用时)或一个解码器(一个输入文件之前使用时)。 codec是一个解码器/编码器的名称或特殊值copy (仅输出),copy表示该流不是被重新编码。

    (3).-r[:stream_specifier] fps (input/output,per-stream)
    设置帧速率(Hz值,分数或缩写)。
    作为输入选项,忽略存储在文件中的任何时间戳,而是产生时间戳假设恒定的帧速率fps这与一些输入格式,诸如image2或者v4l2,中的-framerate选项是不同的(在老版本的ffmpeg中是一样的)。如有疑问,使用的输入选项-framerate代替-r。
    作为输出选项,复制或删除输入帧以达到恒定的输出帧速率fps。

    (4).-s[:stream_specifier] size (input/output,per-stream)
    设置帧尺寸。
    作为输入的选项,这是私有选项video_size的快捷方式,部分分流器可以识别该参数,这时帧大小或者未存储在文件中或不可配置,例如原始视频或视频采集卡。
    作为输出的选择,这将插入scale视频滤镜到相应滤镜组的末端 。如需改变滤镜位置,请将scale滤镜直接插入到开头或其他地方。
    格式是wxh(默认值是使用与源相同的尺寸)。

    (5).-aspect[:stream_specifier] aspect (output,per-stream)
    设置指定视频显示的宽高比aspect。
    aspect可以是一个浮点数,或使用形如 num: den 的形式,其中num是分子,den是分母。例如,“4:3”,“16:9”,“1.3333”,和“1.7777”都是有效的参数值。
    如果与-vcodec copy一起使用,这会影响储存在容器级别的宽高比,而不是存储在编码帧的宽高比,如果有的话。

    (6).-q[:stream_specifier] q (output,per-stream) -qscale[:stream_specifier] q (output,per-stream)
    使用固定编码率(VBR)。q/qscale的意思与编解码器定义相关。如果qscale不与stream_specifier联用,那么它仅适用于视频流,这是为了保持兼容性。另外将相同的编码器参数赋给两个不同的编解码器通常并不是用户想要的,因此若需要这样的功能,可以使用流标识符(stream_specifier)来指定。

    (7).-i filename (input)
    输入的文件名

    (8).-ar[:stream_specifier] freq (input/output,per-stream)
    设置音频采样频率。对于输出流,将默认设置为相应的输入流的采样频率。对于输入流该选项仅对音频抓取设备和raw格式分流器和映射到相应分流器上的选项有效。

    扫描二维码关注公众号,回复: 10877177 查看本文章

    (9).-ac[:stream_specifier] channels (input/output,per-stream)
    设置音频通道的数目。输出流默认将设置为输入音频信道的数目。对于输入流该选项仅对音频抓取设备和raw格式分流器和映射到相应分流器上的选项有效。

5.安装vlc(取流)

官网:https://www.videolan.org/vlc/
支持:windows,MacOS,Android,IOS,Linux

下载安装打开:媒体->打开网络串流->输入:rtmp://39.106.207.193/live/cc(推流地址)

6.测试

使用PC向srs服务器推流(ffmpeg)
用手机从srs服务器取流(vlc播放器)

发布了46 篇原创文章 · 获赞 90 · 访问量 33万+

猜你喜欢

转载自blog.csdn.net/qq_40077167/article/details/100786285