These load test bees script help us to execute Publishing/Subscribing using different protocols for Red5 Pro Standalone and Stream manager2.0 servers.
Load tests with Bees use a lot of resources, better to use AWS large instances, such as: c5.9xlarge or c5.18xlarge. Prepare the server by installing below dependencies to execute these load test scripts.
Store the video and audio file on the server which will be utilized for publishing.
-
Install jq (Linux or Mac OS only)
- Linux:
apt install jq - MacOS:
brew install jq
- Linux:
-
Install ffmpeg (Linux or Mac OS only)
- Linux:
apt install ffmpeg - MacOS:
brew install ffmpeg
- Linux:
-
Install chromium-browser (Linux or Mac OS only)
- Linux:
apt install chromium-browser - MacOS:
brew install --cask chromium
- Linux:
- RTMP Bees
- USAGE: rtmpbee-subscriber.sh [endpoint] [amount_of_subscribers] [amount_of_time_to_playback_in_seconds]
bash ./rtmpbee-subscriber.sh "rtmp://[your.red5pro-deploy.com]:1935/live/[your_stream_name]" 1 60
- USAGE: rtmpbee-subscriber-sm.sh [endpoint] [Nodegroup_name] [rtmp_port] [app] [streamName] [amount_of_subscribers] [amount_of_time_to_playback_in_seconds]
bash ./rtmpbee-subscriber-sm.sh red5pro.server.com your_nodegroup 1935 live stream1 1 60
- USAGE: rtmpbee-subscriber.sh [endpoint] [amount_of_subscribers] [amount_of_time_to_playback_in_seconds]
- RTSP Bees
- USAGE: rtspbee-subscriber.sh [endpoint] [amount_of_subscribers] [amount_of_time_to_playback_stream_in_seconds]
bash ./rtspbee-subscriber.sh "rtsp://[your.red5pro-deploy.com]:8554/live/[your_stream_name]" 1 60
- USAGE: rtspbee-subscriber-sm.sh [endpoint] [Nodegroup_name] [rtsp_port] [app] [streamName] [amount_of_subscribers] [amount_of_time_to_playback]
bash ./rtspbee-subscriber-sm.sh your.red5pro-deploy.com your_nodegroup_name 8554 live stream1 10 100
- USAGE: rtspbee-subscriber.sh [endpoint] [amount_of_subscribers] [amount_of_time_to_playback_stream_in_seconds]
- WebRTC Bees
- USAGE: webrtcbee-subscriber.sh [endpoint] [amount_of_subscribers] [amount_of_time_to_playback_stream_in_seconds]
bash ./webrtcbee-subscriber.sh "https://your.server.com/live/viewer.jsp?host=your.server.com&stream=your_stream_name" standalone stream1 1 60
- USAGE: webrtcbee-subscriber.sh [endpoint] [amount_of_subscribers] [amount_of_time_to_playback_stream_in_seconds]
bash ./webrtcbee-subscriber.sh "https://your.server.com/red5/proxy-subscriber.html?host=your.server.com&protocol=wss&port=443&whipwhep=true&verbose=1&streamName=your_stream_name" 1 60
- USAGE: webrtcbee-subscriber.sh [endpoint] [amount_of_subscribers] [amount_of_time_to_playback_stream_in_seconds]
- RTMP Bees
- USAGE: rtmpbee-publisher.sh [endpoint] [rtmp_port] [app] [streamName] [amoun_of_streams_to_start] [amount_of_time_to_playback_in_seconds] [mp4-file] [boolean_for_audio_only]
bash ./rtmpbee-publisher.sh your.red5pro-deploy.com 1935 live stream1 10 100 abc123 ./path_to_video_file/bbb_480p.mp4 false
- USAGE: rtmpbee-publisher-sm.sh [endpoint] [Nodegroup_name] [rtmp_port] [app] [streamName] [amoun_of_streams_to_start] [amount_of_time_to_playback_in_seconds] [mp4-file] [boolean_for_audio_only]
bash ./rtmpbee-publisher-sm.sh your.red5pro-deploy.com your_nodegroup_name 1935 live stream1 10 10 /path_to_video_file/bbb_480p.mp4 false
- USAGE: rtmpbee-publisher.sh [endpoint] [rtmp_port] [app] [streamName] [amoun_of_streams_to_start] [amount_of_time_to_playback_in_seconds] [mp4-file] [boolean_for_audio_only]
- RTSP Bees
- USAGE: rtspbee-publisher.sh [endpoint] [rtsp_port] [app] [streamName] [amoun_of_streams_to_start] [amount_of_time_to_playback_in_seconds] [mp4-file]
bash ./rtspbee-publisher.sh your.red5pro-deploy.com 8554 live stream1 10 10 abc123 /path_to_the_video_file/test.mp4
- USAGE: rtspbee-publisher-sm.sh [endpoint] [Nodegroup_name] [rtsp_port] [app] [streamName] [amoun_of_streams_to_start] [amount_of_time_to_playback_in_seconds] [mp4-file]
bash ./rtspbee-publisher-sm.sh your.red5pro-deploy.com your_nodegroup_name 8554 live stream1 10 10 /path_to_video_file/bbb_480p.mp4
- USAGE: rtspbee-publisher.sh [endpoint] [rtsp_port] [app] [streamName] [amoun_of_streams_to_start] [amount_of_time_to_playback_in_seconds] [mp4-file]
- WebRTC Bees
- USAGE: webrtcbee-publisher.sh [*publisher.html_endpoint_with_params] [stream_name] [amount_of_streams_to_start] [amount_of_time_to_playback_in_seconds] [path_to_the_video_file.y4m] [path_to_the_audio_file.wav]
bash ./webrtcbee-publisher.sh 'https://your_server.com/live/basic-publisher.html?vw=1920&vh=1080&fr=30&bwV=4500&bwA=56&audio=1&video=1' stream1 1 60 /home/ubuntu/video_examples/240p.y4m /home/ubuntu/video_examples/test_high.wav
- USAGE: webrtcbee-publisher.sh [*publisher.html_endpoint_with_params] [stream_name] [amount_of_streams_to_start] [amount_of_time_to_playback_in_seconds] [path_to_the_video_file.y4m] [path_to_the_audio_file.wav]
bash ./webrtcbee-publisher.sh 'https://your.red5pro-deploy.com/red5/proxy-publisher.html?cameraWidth=1280&cameraHeight=720&fr=30&bwV=1500&bwA=56&video=1&audio=1&protocol=wss&port=443&whipwhep=true&verbose=1' stream1 1 60 /home/ubuntu/video_examples/240p.y4m /home/ubuntu/video_examples/test_high.wav
- USAGE: webrtcbee-publisher.sh [*publisher.html_endpoint_with_params] [stream_name] [amount_of_streams_to_start] [amount_of_time_to_playback_in_seconds] [path_to_the_video_file.y4m] [path_to_the_audio_file.wav]