2020-11-24 00:28:54 -08:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
TEMP_DB=$(mktemp)
|
|
|
|
|
|
|
|
# Install the node test framework
|
|
|
|
npm install --silent > /dev/null
|
|
|
|
|
|
|
|
# Download a specific version of ffmpeg
|
|
|
|
if [ ! -d "ffmpeg" ]; then
|
|
|
|
mkdir ffmpeg
|
|
|
|
pushd ffmpeg > /dev/null
|
|
|
|
curl -sL https://github.com/vot/ffbinaries-prebuilt/releases/download/v4.2.1/ffmpeg-4.2.1-linux-64.zip --output ffmpeg.zip > /dev/null
|
|
|
|
unzip -o ffmpeg.zip > /dev/null
|
|
|
|
PATH=$PATH:$(pwd)
|
|
|
|
popd > /dev/null
|
|
|
|
fi
|
|
|
|
|
2021-09-17 14:04:09 -07:00
|
|
|
pushd ../../.. > /dev/null
|
2020-11-24 00:28:54 -08:00
|
|
|
|
|
|
|
# Build and run owncast from source
|
2021-10-11 14:56:00 -07:00
|
|
|
go build -o owncast main.go
|
2021-09-18 10:06:47 -07:00
|
|
|
BROWSER_TEST=true ./owncast -rtmpport 9021 -webserverport 5309 -database $TEMP_DB &
|
2020-11-24 00:28:54 -08:00
|
|
|
SERVER_PID=$!
|
|
|
|
|
|
|
|
popd > /dev/null
|
|
|
|
sleep 5
|
|
|
|
|
|
|
|
# Start streaming the test file over RTMP to
|
|
|
|
# the local owncast instance.
|
2021-09-17 14:04:09 -07:00
|
|
|
ffmpeg -hide_banner -loglevel panic -stream_loop -1 -re -i ../test.mp4 -vcodec libx264 -profile:v main -sc_threshold 0 -b:v 1300k -acodec copy -f flv rtmp://127.0.0.1:9021/live/abc123 &
|
2020-11-24 00:28:54 -08:00
|
|
|
FFMPEG_PID=$!
|
|
|
|
|
|
|
|
function finish {
|
|
|
|
rm $TEMP_DB
|
|
|
|
kill $SERVER_PID $FFMPEG_PID
|
|
|
|
}
|
|
|
|
trap finish EXIT
|
|
|
|
|
|
|
|
echo "Waiting..."
|
2021-09-17 14:04:09 -07:00
|
|
|
sleep 15
|
2020-11-24 00:28:54 -08:00
|
|
|
|
|
|
|
# Run the tests against the instance.
|
|
|
|
npm test
|