7 changed files with 154 additions and 2 deletions
@ -0,0 +1,19 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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