7 changed files with 154 additions and 2 deletions
@ -0,0 +1,19 @@ |
|||||||
|
FROM golang:1.14-alpine3.12 |
||||||
|
|
||||||
|
RUN apk add --no-cache \ |
||||||
|
ffmpeg |
||||||
|
|
||||||
|
RUN wget -O /video.mkv http://jell.yfish.us/media/jellyfish-10-mbps-hd-h264.mkv |
||||||
|
|
||||||
|
WORKDIR /s |
||||||
|
|
||||||
|
COPY go.mod go.sum ./ |
||||||
|
RUN go mod download |
||||||
|
|
||||||
|
COPY *.go ./ |
||||||
|
RUN go build -o /rtsp-simple-server . |
||||||
|
|
||||||
|
COPY stress/proxy/start.sh / |
||||||
|
RUN chmod +x /start.sh |
||||||
|
|
||||||
|
ENTRYPOINT [ "/start.sh" ] |
@ -0,0 +1,37 @@ |
|||||||
|
#!/bin/sh -e |
||||||
|
|
||||||
|
PROXY_COUNT=10 |
||||||
|
PROXY_PROTOCOL=tcp |
||||||
|
|
||||||
|
##################################################### |
||||||
|
# source |
||||||
|
|
||||||
|
CONF="" |
||||||
|
CONF="${CONF}rtspPort: 8555\n" |
||||||
|
CONF="${CONF}rtpPort: 8002\n" |
||||||
|
CONF="${CONF}rtcpPort: 8003\n" |
||||||
|
echo -e "$CONF" > /source.conf |
||||||
|
|
||||||
|
/rtsp-simple-server /source.conf & |
||||||
|
|
||||||
|
sleep 1 |
||||||
|
|
||||||
|
ffmpeg -hide_banner -loglevel error \ |
||||||
|
-re -stream_loop -1 -i /video.mkv -c copy -f rtsp rtsp://localhost:8555/source & |
||||||
|
|
||||||
|
sleep 1 |
||||||
|
|
||||||
|
##################################################### |
||||||
|
# proxy |
||||||
|
|
||||||
|
CONF="" |
||||||
|
CONF="${CONF}pprof: yes\n" |
||||||
|
CONF="${CONF}paths:\n" |
||||||
|
for i in $(seq 1 $PROXY_COUNT); do |
||||||
|
CONF="${CONF} proxy$i:\n" |
||||||
|
CONF="${CONF} source: rtsp://localhost:8555/source\n" |
||||||
|
CONF="${CONF} sourceProtocol: $PROXY_PROTOCOL\n" |
||||||
|
done |
||||||
|
echo -e "$CONF" > /proxy.conf |
||||||
|
|
||||||
|
/rtsp-simple-server /proxy.conf |
@ -0,0 +1,19 @@ |
|||||||
|
FROM golang:1.14-alpine3.12 |
||||||
|
|
||||||
|
RUN apk add --no-cache \ |
||||||
|
ffmpeg |
||||||
|
|
||||||
|
RUN wget -O /video.mkv http://jell.yfish.us/media/jellyfish-10-mbps-hd-h264.mkv |
||||||
|
|
||||||
|
WORKDIR /s |
||||||
|
|
||||||
|
COPY go.mod go.sum ./ |
||||||
|
RUN go mod download |
||||||
|
|
||||||
|
COPY *.go ./ |
||||||
|
RUN go build -o /rtsp-simple-server . |
||||||
|
|
||||||
|
COPY stress/publish/start.sh / |
||||||
|
RUN chmod +x /start.sh |
||||||
|
|
||||||
|
ENTRYPOINT [ "/start.sh" ] |
@ -0,0 +1,23 @@ |
|||||||
|
#!/bin/sh -e |
||||||
|
|
||||||
|
PUBLISHER_COUNT=10 |
||||||
|
PUBLISHER_PROTOCOL=tcp |
||||||
|
|
||||||
|
##################################################### |
||||||
|
# publishers |
||||||
|
|
||||||
|
CONF="" |
||||||
|
CONF="${CONF}pprof: yes\n" |
||||||
|
echo -e "$CONF" > /source.conf |
||||||
|
|
||||||
|
/rtsp-simple-server /source.conf & |
||||||
|
|
||||||
|
sleep 1 |
||||||
|
|
||||||
|
for i in $(seq 1 $PUBLISHER_COUNT); do |
||||||
|
ffmpeg -hide_banner -loglevel error \ |
||||||
|
-re -stream_loop -1 -i /video.mkv -c copy -f rtsp \ |
||||||
|
-rtsp_transport $PUBLISHER_PROTOCOL rtsp://localhost:8554/source$i & |
||||||
|
done |
||||||
|
|
||||||
|
wait |
@ -0,0 +1,19 @@ |
|||||||
|
FROM golang:1.14-alpine3.12 |
||||||
|
|
||||||
|
RUN apk add --no-cache \ |
||||||
|
ffmpeg |
||||||
|
|
||||||
|
RUN wget -O /video.mkv http://jell.yfish.us/media/jellyfish-10-mbps-hd-h264.mkv |
||||||
|
|
||||||
|
WORKDIR /s |
||||||
|
|
||||||
|
COPY go.mod go.sum ./ |
||||||
|
RUN go mod download |
||||||
|
|
||||||
|
COPY *.go ./ |
||||||
|
RUN go build -o /rtsp-simple-server . |
||||||
|
|
||||||
|
COPY stress/read/start.sh / |
||||||
|
RUN chmod +x /start.sh |
||||||
|
|
||||||
|
ENTRYPOINT [ "/start.sh" ] |
@ -0,0 +1,30 @@ |
|||||||
|
#!/bin/sh -e |
||||||
|
|
||||||
|
READER_COUNT=10 |
||||||
|
READER_PROTOCOL=tcp |
||||||
|
|
||||||
|
##################################################### |
||||||
|
# source |
||||||
|
|
||||||
|
CONF="" |
||||||
|
CONF="${CONF}pprof: yes\n" |
||||||
|
echo -e "$CONF" > /source.conf |
||||||
|
|
||||||
|
/rtsp-simple-server /source.conf & |
||||||
|
|
||||||
|
sleep 1 |
||||||
|
|
||||||
|
ffmpeg -re -stream_loop -1 -i /video.mkv -c copy -f rtsp rtsp://localhost:8554/source & |
||||||
|
|
||||||
|
sleep 1 |
||||||
|
|
||||||
|
##################################################### |
||||||
|
# readers |
||||||
|
|
||||||
|
for i in $(seq 1 $READER_COUNT); do |
||||||
|
ffmpeg -hide_banner -loglevel error \ |
||||||
|
-rtsp_transport $READER_PROTOCOL \ |
||||||
|
-i rtsp://localhost:8554/source -c copy -f mpegts -y /dev/null & |
||||||
|
done |
||||||
|
|
||||||
|
wait |
Loading…
Reference in new issue