首先启动SRS
./objs/srs -c conf/rtc.conf
推流
ffmpeg -re -i Horizon.flv -c copy -f flv -y rtmp://localhost/live/livestream
浏览器打开
黑屏的可能原因:candidiate配置错误http://localhost:8080/players/rtc_player.html
candidate的参数
* 表示自动获取IP;
¥CANDIDATE 表示从环境变量取值,如果没有环境变量即为*;
x.x.x.x 表示某个IP
1.可以在客户端指定IP
例如:webrtc://localhost/live/livestream?eip=192.168.112.128
2.或者在浏览器地址栏输入?target=x.x.x.x 指定IP
例如:localhost:8080/players/rtc_player.html?target=192.168.112.128
3.也可以指定环境变量
命令行输入:
export CANDIDATE=X.X.X.X
设置完后可以通过下述命令查看环境变量的值
env | grep CANDIDATE
注意在conf文件里面要选择$CANDIDATE
最终可以在chrome://webrtc-internals (webRTC的Chrome调试模式)里面的setRemoteDescription里面找到客户端能访问的IP才行。
用Docker启动SRS使用Docker直接启动SRS
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080
--env CANDIDATE=$CANDIDATE -p 8000:8000/udp
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4 ./objs/srs -c conf/rtc.conf
注意设置好CANDIDATE。
如果提示端口被占用,可以使用命令netstat -tanlp 查看当前端口占用情况
接着kill相应的进程 kill pid
正常启动后即可正常推流
1.SRS Docker有哪些每个release版本都有Docker
2.如何打自己的Docker镜像github.com/ossrs/srs/releases
使用/trunk里面的Dockerfile
docker build -f Dockerfile
能够编译出自己的docker,push到自己的docker仓库即可
3.开发环境Docker
github.com/ossrs/dev-docker
4.搜索SRS所有相关镜像
hub.docker.com
搜索ossrs/srs tag里面很多
代码结构
SRS可以用RTMP推流用RTC来播,或者是RTC推流RTC播。
- 在srs_app_source.hpp里面的ISrsSourceBridger* bridger ,推RTMP流后转为RTC。
- RTC有自己的srs.app.rtc.source.hpp,它也有自己的ISrsSourceBridger* bridger_,在SrsRtcFromRtmpBridger里面



