improve stream testing script (#2525)
* merge testContent.sh into ocContent.sh * detect ffmpeg ffmpeg or ffmpeg.exe in path, current dir, or parent dir * use ocTestStream in api test * enable verbose logging for api tests * log ffmpeg version * change ffmpeg lookup order * set path properly for using the local ffmpeg * rm double space from transcoder error logs * update tests for new video stream do not test bitrate * set test stream target to 127.0.0.1 * log ffmpeg path * update ffmpeg to v4.4.1 * improve logs * fix ffmpeg installer script * fix api test runner * fix logs * install fonts * cleanup * use ocTestStream.sh for all automated tests * cleanup ocTestStream.sh * cleanup test/automated/hls/run.sh * Fix misspell * fix ffmpeg installer in automated test runners * spell fix * cleanup script * rev quick api tests * cleanup tmp paths properly in automated tests * rm unused ffmpeg package * cleanup
This commit is contained in:
@@ -374,10 +374,9 @@ test('verify updated config values', async (done) => {
|
||||
test('verify admin stream details', async (done) => {
|
||||
const res = await getAdminResponse('status');
|
||||
|
||||
expect(res.body.broadcaster.streamDetails.width).toBe(320);
|
||||
expect(res.body.broadcaster.streamDetails.height).toBe(180);
|
||||
expect(res.body.broadcaster.streamDetails.framerate).toBe(24);
|
||||
expect(res.body.broadcaster.streamDetails.videoBitrate).toBe(1269);
|
||||
expect(res.body.broadcaster.streamDetails.width).toBe(1280);
|
||||
expect(res.body.broadcaster.streamDetails.height).toBe(720);
|
||||
expect(res.body.broadcaster.streamDetails.framerate).toBe(60);
|
||||
expect(res.body.broadcaster.streamDetails.videoCodec).toBe('H.264');
|
||||
expect(res.body.broadcaster.streamDetails.audioCodec).toBe('AAC');
|
||||
expect(res.body.online).toBe(true);
|
||||
|
||||
@@ -6,14 +6,13 @@ TEMP_DB=$(mktemp)
|
||||
npm install --quiet --no-progress
|
||||
|
||||
# Download a specific version of ffmpeg
|
||||
if [ ! -d "ffmpeg" ]; then
|
||||
mkdir ffmpeg
|
||||
pushd ffmpeg >/dev/null || exit
|
||||
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 || exit
|
||||
fi
|
||||
FFMPEG_PATH=$(mktemp -d)
|
||||
pushd "$FFMPEG_PATH" >/dev/null || exit
|
||||
curl -sL --fail https://github.com/ffbinaries/ffbinaries-prebuilt/releases/download/v4.4.1/ffmpeg-4.4.1-linux-64.zip --output ffmpeg.zip >/dev/null
|
||||
unzip -o ffmpeg.zip >/dev/null
|
||||
chmod +x ffmpeg
|
||||
PATH=$FFMPEG_PATH:$PATH
|
||||
popd >/dev/null || exit
|
||||
|
||||
pushd ../../.. >/dev/null || exit
|
||||
|
||||
@@ -27,12 +26,12 @@ sleep 5
|
||||
|
||||
# Start streaming the test file over RTMP to
|
||||
# the local owncast instance.
|
||||
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/live/abc123 &
|
||||
../../ocTestStream.sh &
|
||||
FFMPEG_PID=$!
|
||||
|
||||
function finish {
|
||||
rm "$TEMP_DB"
|
||||
kill $SERVER_PID $FFMPEG_PID
|
||||
rm -fr "$TEMP_DB" "$FFMPEG_PATH"
|
||||
}
|
||||
trap finish EXIT
|
||||
|
||||
|
||||
@@ -22,15 +22,13 @@ npm install --quiet --no-progress
|
||||
popd
|
||||
|
||||
# Download a specific version of ffmpeg
|
||||
if [ ! -d "ffmpeg" ]; then
|
||||
echo "Downloading ffmpeg..."
|
||||
mkdir -p /tmp/ffmpeg
|
||||
pushd /tmp/ffmpeg >/dev/null
|
||||
curl -sL --fail https://github.com/vot/ffbinaries-prebuilt/releases/download/v4.2.1/ffmpeg-4.2.1-linux-64.zip --output ffmpeg.zip
|
||||
unzip -o ffmpeg.zip >/dev/null
|
||||
PATH=$PATH:$(pwd)
|
||||
popd >/dev/null
|
||||
fi
|
||||
FFMPEG_PATH=$(mktemp -d)
|
||||
pushd "$FFMPEG_PATH" >/dev/null || exit
|
||||
curl -sL --fail https://github.com/ffbinaries/ffbinaries-prebuilt/releases/download/v4.4.1/ffmpeg-4.4.1-linux-64.zip --output ffmpeg.zip >/dev/null
|
||||
unzip -o ffmpeg.zip >/dev/null
|
||||
chmod +x ffmpeg
|
||||
PATH=$FFMPEG_PATH:$PATH
|
||||
popd >/dev/null || exit
|
||||
|
||||
# Build and run owncast from source
|
||||
echo "Building owncast..."
|
||||
@@ -49,13 +47,13 @@ npx cypress run --group "mobile-offline" --ci-build-id $BUILD_ID --tag "mobile,o
|
||||
# Start streaming the test file over RTMP to
|
||||
# the local owncast instance.
|
||||
echo "Waiting for stream to start..."
|
||||
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/live/abc123 &
|
||||
../../ocTestStream.sh &
|
||||
STREAMING_CLIENT=$!
|
||||
|
||||
function finish {
|
||||
echo "Cleaning up..."
|
||||
rm "$TEMP_DB"
|
||||
kill $SERVER_PID $STREAMING_CLIENT
|
||||
rm -fr "$TEMP_DB" "$FFMPEG_PATH"
|
||||
}
|
||||
trap finish EXIT SIGHUP SIGINT SIGTERM SIGQUIT SIGABRT SIGTERM
|
||||
|
||||
|
||||
@@ -2,13 +2,6 @@
|
||||
|
||||
set -e
|
||||
|
||||
function start_stream() {
|
||||
# Start streaming the test file over RTMP to
|
||||
# the local owncast instance.
|
||||
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/live/abc123 &
|
||||
STREAMING_CLIENT=$!
|
||||
}
|
||||
|
||||
function update_storage_config() {
|
||||
echo "Configuring external storage to use ${S3_BUCKET}..."
|
||||
|
||||
@@ -24,14 +17,13 @@ TEMP_DB=$(mktemp)
|
||||
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
|
||||
FFMPEG_PATH=$(mktemp -d)
|
||||
pushd "$FFMPEG_PATH" >/dev/null || exit
|
||||
curl -sL --fail https://github.com/ffbinaries/ffbinaries-prebuilt/releases/download/v4.4.1/ffmpeg-4.4.1-linux-64.zip --output ffmpeg.zip >/dev/null
|
||||
unzip -o ffmpeg.zip >/dev/null
|
||||
chmod +x ffmpeg
|
||||
PATH=$FFMPEG_PATH:$PATH
|
||||
popd >/dev/null || exit
|
||||
|
||||
pushd ../../.. >/dev/null
|
||||
|
||||
@@ -40,18 +32,19 @@ go build -o owncast main.go
|
||||
./owncast -database "$TEMP_DB" &
|
||||
SERVER_PID=$!
|
||||
|
||||
function finish {
|
||||
echo "Cleaning up..."
|
||||
rm "$TEMP_DB"
|
||||
kill $SERVER_PID $STREAMING_CLIENT
|
||||
}
|
||||
trap finish EXIT
|
||||
|
||||
popd >/dev/null
|
||||
sleep 5
|
||||
|
||||
# Start the stream.
|
||||
start_stream
|
||||
../../ocTestStream.sh &
|
||||
STREAMING_CLIENT=$!
|
||||
|
||||
function finish {
|
||||
echo "Cleaning up..."
|
||||
kill $SERVER_PID $STREAMING_CLIENT
|
||||
rm -fr "$TEMP_DB" "$FFMPEG_PATH"
|
||||
}
|
||||
trap finish EXIT
|
||||
|
||||
echo "Waiting..."
|
||||
sleep 13
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user