Simple-RTMP-Server 服务器搭建

本文详细介绍如何搭建SRS直播服务器,包括服务器镜像获取、防火墙设置、编译安装、配置文件编写、启动服务及推流编码器使用等步骤,并提供观看RTMP和HLS流的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 服务器镜像获取

  • github源码地址
	git clone https://github.com/winlinvip/simple-rtmp-server.git
  • 优快云镜像地址
	git clone https://code.youkuaiyun.com/winlinvip/srs-csdn.git
  • OSChina镜像
	git clone https://git.oschina.net/winlinvip/srs.oschina.git

2. 关闭防火墙和selinux或者开放端口

  • 关闭防火墙
	# disable the firewall
	sudo /etc/init.d/iptables stop
	sudo /sbin/chkconfig iptables off
  • 使selinux失败
  • 编辑配置文件:sudo vi /etc/sysconfig/selinux
  • 把SELINUX的值改为disabled:SELINUX=disabled
  • 重启系统:sudo init 6

3. 编译系统

	./configure --disable-all --with-ssl --with-hls --with-nginx --with-ffmpeg --with-transcode
	make && sudo make install

安装命令会将SRS默认安装到/usr/local/srs中,可以在configure时指定其他目录,譬如./configure --prefix=pwd/_release 可以安装到当前的_release目录(可以不用sudo安装,直接用make install即可安装)

4. 建立启动服务

4.1 建立软连接

	sudo ln -sf   /usr/local/srs/etc/init.d/srs  /etc/init.d/srs
  • 备注:若SRS安装到其他目录,将/usr/local/srs替换成其他目录。

  • 备注:也可以使用其他的名称,譬如/etc/init.d/srs,可以任意名称,启动时也用该名称。

4.2 添加服务

	#centos 6
	sudo /sbin/chkconfig --add srs

或者

	#ubuntu12
	sudo update-rc.d srs defaults

4.3 使用init.d脚本管理SRS

查看SRS状态:

	/etc/init.d/srs status

启动SRS:

	/etc/init.d/srs start

停止SRS:

	/etc/init.d/srs stop

重启SRS:

	/etc/init.d/srs restart

Reload SRS:

	/etc/init.d/srs reload

5. 启动分发hls(m3u8/ts)的nginx

	sudo ./objs/nginx/sbin/nginx

6. 编写SRS配置文件

将以下内容保存为文件,譬如conf/transcode2hls.audio.only.conf,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。

# conf/transcode2hls.audio.only.conf
listen              1935;
max_connections     1000;
http_stream {
    # whether http streaming service is enabled.
    # default: off
    enabled         on;
    # the http streaming port
    # @remark, if use lower port, for instance 80, user must start srs by root.
    # default: 8080
    listen          8080;
    # the default dir for http root.
    # default: ./objs/nginx/html
    dir             ./objs/nginx/html;
}
vhost __defaultVhost__ {
    hls {
        enabled         on;
        hls_path        ./objs/nginx/html;
        hls_fragment    10;
        hls_window      60;
    }
    transcode {
        enabled     on;
        ffmpeg      ./objs/ffmpeg/bin/ffmpeg;
        engine ff {
            enabled         on;
            vcodec          copy;
            acodec          libaacplus;
            abitrate        45;
            asample_rate    44100;
            achannels       2;
            aparams {
            }
            output          rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];
        }
    }
}

备注:这个配置使用只转码音频,因为视频是h.264符合要求

7. 启动SRS

	./objs/srs -c conf/transcode2hls.audio.only.conf

或者使用服务进行启动

8. 启动推流编码器

使用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

或使用FMLE推流:

	FMS URL: rtmp://192.168.1.170/live
	Stream: livestream

生成的流地址为:

  • RTMP流地址为(FMLE推流无HLS地址):rtmp://192.168.1.170/live/livestream
  • 转码后的RTMP流地址为:rtmp://192.168.1.170/live/livestream_ff
  • 转码后的HLS流地址为: http://192.168.1.170/live/livestream_ff.m3u8

备注:因为FMLE推上来的音频有问题,不是aac,所以srs会报错(当然啦,不然就不用转码了)。这个错误可以忽略,srs是说,rtmp流没有问题,但是无法切片为hls,因为音频编码不对。没有关系,ffmpeg会转码后重新推一路流给srs。

备注:如何只对符合要求的流切hls?可以用vhost。默认的vhost不切hls,将转码后的流推送到另外一个vhost,这个vhost切hls。

9. 观看RTMP流

  • RTMP流地址为:rtmp://192.168.1.170/live/livestream_ff
  • 播放器:VLC
  • 或者:
  • http://winlinvip.github.io/srs.release/trunk/research/players/srs_player.html?vhost=defaultVhost&autostart=true&server=192.168.1.170&app=live&stream=livestream_ff

  • HLS流地址为: http://192.168.1.170/live/livestream_ff.m3u8
  • 播放器VLC
  • 或者
  • http://winlinvip.github.io/srs.release/trunk/research/players/jwplayer6.html?vhost=defaultVhost&hls_autostart=true&server=192.168.1.170&app=live&stream=livestream_ff

10. 手机端查看

10.1 Android

<video width="640" height="360"
	autoplay controls autobuffer 
	src="http://127.0.0.1/live/livestream.m3u8"
	type="application/vnd.apple.mpegurl">
</video>

10.2 IOS

	http://127.0.0.1/live/livestream.m3u8




http://www.cnblogs.com/meetrice/p/5428975.html
<think>嗯,用户问的是如何在Windows上开启rtsp-simple-server。首先,我需要确认rtsp-simple-server是什么。根据我的知识,这是一个开源的RTSP服务器,用于流媒体传输,通常用于视频直播或者监控系统中。用户可能想搭建一个本地的RTSP服务器来测试或者实际应用。 接下来,我需要考虑用户的操作系统是Windows,所以步骤需要针对Windows环境。首先应该指导用户下载正确的版本。rtsp-simple-server的GitHub仓库通常会有Windows的可执行文件,比如.exe文件或者压缩包。用户可能需要访问GitHub的发布页面下载最新的版本。 然后,解压下载的文件到某个目录,比如D:\rtsp-simple-server。接着,用户需要配置服务器。可能需要修改配置文件,比如rtsp-simple-server.yml,设置端口、认证、流路径等。如果用户不需要复杂配置,可能默认配置就足够,但需要说明如何自定义。 运行服务器的话,在Windows下可以通过命令行执行.exe文件,或者编写一个批处理脚本方便启动。用户可能需要知道如何保持窗口打开,以便查看日志。此外,防火墙设置可能会阻止外部访问,所以需要提醒用户允许程序通过防火墙,或者开放相应的端口,如554(RTSP默认端口)和1935(RTMP)。 推流和拉流部分,用户可能需要使用FFmpeg或者OBS等工具推流到服务器,然后用VLC等播放器测试拉流。这里需要给出具体的命令示例,比如FFmpeg的命令行参数,以及VLC的打开URL方式。 可能遇到的问题包括端口冲突、配置错误、权限不足等。需要建议用户检查日志,确认端口是否被占用,配置文件是否正确。另外,路径问题也很重要,确保配置文件在正确的位置,或者通过命令行参数指定。 最后,提醒用户注意安全,比如默认配置可能没有认证,暴露在公网会有风险,建议设置密码或者限制访问。还可以提到查看官方文档获取更多配置选项,比如TLS加密、日志设置等。 总结一下,步骤应该是下载、解压、配置、运行、推流测试、处理防火墙和常见问题。需要确保每个步骤清晰,命令行示例准确,特别是Windows下的路径和命令可能与Linux不同,需要注意反斜杠和空格的处理。可能用户对命令行不熟悉,所以需要给出具体的例子,比如cd命令和启动命令。另外,配置文件的位置和修改方法也需要明确,避免用户找不到文件。</think>以下是Windows系统下开启rtsp-simple-server的详细步骤: 1. **下载安装包** - 访问GitHub发布页:https://github.com/aler9/rtsp-simple-server/releases - 下载最新版 `rtsp-simple-server_windows_amd64.zip` 2. **解压文件** ```powershell Expand-Archive -Path .\rtsp-simple-server_windows_amd64.zip -DestinationPath D:\rtsp-simple-server ``` (建议路径不要包含中文或空格) 3. **基础配置** 在解压目录中新建 `rtsp-simple-server.yml` 文件,示例配置: ```yaml rtsp: port: 8554 paths: cam1: source: tcp://192.168.1.100:554 live: source: ffmpeg -i rtsp://admin:password@192.168.1.200/Streaming/Channels/101 ``` 4. **启动服务** ```cmd cd /d D:\rtsp-simple-server rtsp-simple-server.exe ``` 5. **防火墙设置** ```powershell New-NetFirewallRule -DisplayName "RTSP Server" -Direction Inbound -Protocol TCP -LocalPort 8554,1935 -Action Allow ``` 6. **推流测试** 使用FFmpeg推流命令: ```cmd ffmpeg -re -i test.mp4 -c copy -f rtsp rtsp://localhost:8554/mystream ``` 7. **客户端验证** 使用VLC播放器打开: ``` rtsp://你的服务器IP:8554/mystream ``` **常见问题排查**: 1. 端口冲突:使用 `netstat -ano | findstr :8554` 检查端口占用 2. 查看实时日志:启动时添加 `--log-level debug` 参数 3. 后台运行:使用 `start /B rtsp-simple-server.exe` 保持后台服务 **高级功能**: - HTTPS支持:在配置中启用 `encryption` 部分 - 认证配置:添加 `readUser` 和 `readPass` 字段 - HLS输出:配置 `hls` 段实现HTTP直播流 建议通过 `-conf` 参数指定配置文件路径: ```cmd rtsp-simple-server.exe -conf D:\config\custom_config.yml ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值