peertube-performance-test-kit/README.md

50 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

2020-12-03 14:15:59 +00:00
# PeerTube Performances Test Kit
2020-12-03 15:46:57 +00:00
Scripts to generate video files and live streams for performance testing of PeerTube
## Dependencies
2020-12-04 10:00:07 +00:00
These scripts rely on :
- `ffmpeg` to generate the audio/video streams. Tested with ffmpeg versions:
- 4.1.6
- 4.2.4
2023-03-01 23:12:38 +00:00
- 4.3.5
2020-12-04 10:00:07 +00:00
- `bc` to compute the encoding buffer size from the specified video bitrate
To install the dependencies on Debian 10 (Buster):
`sudo apt install ffmpeg bc`
2020-12-03 15:46:57 +00:00
# Mains scripts
There are 4 main scripts :
2020-12-03 15:49:46 +00:00
- gen_pattern_sine.sh
2020-12-03 15:46:57 +00:00
generate video file with static pattern, time overlay (seconds elapsed from start) and sine wave stereo audio
2020-12-03 15:49:46 +00:00
- gen_random_noise.sh
2020-12-03 15:46:57 +00:00
generate video file with random video, time overlay (seconds elapsed from start and local timestamp) and sine wave stereo audio
2020-12-03 15:49:46 +00:00
- stream_pattern_sine.sh
2020-12-03 15:46:57 +00:00
send live stream and save a copy to file with static pattern, time overlay (seconds from start) and sine wave audio
2020-12-03 15:49:46 +00:00
- stream_random_noise.sh
2020-12-03 15:46:57 +00:00
send live stream and save a copy to file with random video, time overlay (seconds elapsed from start and local timestamp) and sine wave audio
2023-03-01 23:12:38 +00:00
- stream_v4l_device.sh
send a continuous live stream and save a copy to files, one every 10 minutes, with video from a V4L2 device, a timestamp overlay and sine wave audio or camera audio (see comments in the file)
2020-12-03 15:46:57 +00:00
2020-12-03 15:49:46 +00:00
Run the scripts with no parameter for help.
2020-12-03 15:46:57 +00:00
The "random_noise" scripts are designed to produce video streams that are very hard to encode. These are to test worst case scenarii
The "pattern_sine" scripts produce video streams that are lighter to process (use less CPU to encode on peertube side) and compress to a smaller size.
# Helper scripts
2020-12-03 15:49:46 +00:00
The other scripts are helpers that are just sortcuts to call the main scripts with some pre-defined parameters values. The names of these scripts should be self explanatory :
2020-12-03 15:46:57 +00:00
- gen_pattern_1080p_60s.sh
- gen_pattern_720p_60s.sh
- gen_random_1080p_60s.sh
- gen_random_720p_60s.sh
- stream_pattern_1080p_300s.sh
- stream_pattern_1080p_3600s.sh
- stream_pattern_720p_300s.sh
- stream_pattern_720p_3600s.sh
- stream_random_1080p_300s.sh
- stream_random_1080p_3600s.sh
- stream_random_720p_300s.sh
- stream_random_720p_3600s.sh