Files
metamesh-plugin-still-extra…/test/fixtures/generate-test-fixtures.sh
T
Worph 5b0cffc874
Build and Push Docker Image / build (push) Failing after 13s
initial commit
2026-09-12 20:12:24 +02:00

54 lines
2.0 KiB
Bash

#!/bin/bash
# Generate test videos for still-extractor integration tests.
# Run inside the test container (ffmpeg required).
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
echo "Generating test fixtures..."
# 1. Plain colourful video — every candidate offset should yield a usable frame.
if [ ! -f "color.mp4" ]; then
echo "Creating color.mp4..."
ffmpeg -y -f lavfi -i testsrc=duration=10:size=320x240:rate=24 \
-c:v libx264 -preset ultrafast -crf 28 -pix_fmt yuv420p \
color.mp4
fi
# 2. Six seconds of black, then picture. 20s total, so the 20% candidate (4s)
# lands in the black head and must be rejected in favour of a later one.
if [ ! -f "black-head.mp4" ]; then
echo "Creating black-head.mp4..."
ffmpeg -y -f lavfi -i "color=c=black:size=320x240:duration=6:rate=24" \
-c:v libx264 -preset ultrafast -crf 28 -pix_fmt yuv420p black_part.mp4
ffmpeg -y -f lavfi -i testsrc=duration=14:size=320x240:rate=24 \
-c:v libx264 -preset ultrafast -crf 28 -pix_fmt yuv420p color_part.mp4
printf "file 'black_part.mp4'\nfile 'color_part.mp4'\n" > concat.txt
ffmpeg -y -f concat -safe 0 -i concat.txt -c copy black-head.mp4
rm -f black_part.mp4 color_part.mp4 concat.txt
fi
# 3. Video carrying attached cover art LARGER than the video itself — the
# stream-selection trap. ffprobe reports the cover as codec_type=video.
if [ ! -f "cover-art.mp4" ]; then
echo "Creating cover-art.mp4..."
ffmpeg -y -f lavfi -i "color=c=red:size=600x900:duration=1:rate=1" -frames:v 1 cover.png
ffmpeg -y -i color.mp4 -i cover.png \
-map 0:v -map 1 -c copy -disposition:v:1 attached_pic \
cover-art.mp4
rm -f cover.png
fi
# 4. Audio-only file — nothing to extract.
if [ ! -f "audio-only.mp3" ]; then
echo "Creating audio-only.mp3..."
ffmpeg -y -f lavfi -i sine=frequency=440:duration=2 \
-c:a libmp3lame -b:a 128k \
audio-only.mp3
fi
echo "Test fixtures generated:"
ls -la *.mp4 *.mp3 2>/dev/null || true