Files
Worph 346c02567b
Build and Push Docker Image / build (push) Failing after 13s
improve extractor
2026-09-13 11:52:10 +02:00

74 lines
2.1 KiB
Bash

#!/bin/bash
# Generate media for subtitle-extractor integration tests.
# Run inside the test container (ffmpeg required); safe to run locally too.
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
echo "Generating test fixtures..."
# 1. MKV with three text tracks — the shape real releases have:
# s:0 SubRip, language eng
# s:1 ASS, language fre, forced (must stay ASS under outputFormat=native)
# s:2 SubRip, language und (nothing declared)
if [ ! -f "with-subs.mkv" ]; then
echo "Creating with-subs.mkv..."
cat > eng.srt << 'EOF'
1
00:00:00,000 --> 00:00:01,000
The quick brown fox jumps over the lazy dog.
2
00:00:01,000 --> 00:00:02,000
Every good story starts somewhere.
EOF
cat > fre.srt << 'EOF'
1
00:00:00,000 --> 00:00:01,000
Le renard brun saute par-dessus le chien paresseux.
2
00:00:01,000 --> 00:00:02,000
Chaque bonne histoire commence quelque part.
EOF
cat > und.srt << 'EOF'
1
00:00:00,500 --> 00:00:01,500
~ ~ ~
EOF
ffmpeg -y -f lavfi -i testsrc=duration=3:size=160x120:rate=12 \
-i eng.srt -i fre.srt -i und.srt \
-map 0:v -map 1:s -map 2:s -map 3:s \
-c:v libx264 -preset ultrafast -crf 35 -pix_fmt yuv420p \
-c:s:0 srt -c:s:1 ass -c:s:2 srt \
-metadata:s:s:0 language=eng \
-metadata:s:s:1 language=fre -disposition:s:1 forced \
-metadata:s:s:2 language=und \
with-subs.mkv
rm -f eng.srt fre.srt und.srt
fi
# 2. MP4 with a mov_text track tagged in ISO 639-2/T (`deu`) — must be converted
# to SRT and normalised to `ger`.
if [ ! -f "mov-text.mp4" ]; then
echo "Creating mov-text.mp4..."
cat > ger.srt << 'EOF'
1
00:00:00,000 --> 00:00:01,000
Der schnelle braune Fuchs springt über den faulen Hund.
EOF
ffmpeg -y -f lavfi -i testsrc=duration=2:size=160x120:rate=12 \
-i ger.srt \
-map 0:v -map 1:s \
-c:v libx264 -preset ultrafast -crf 35 -pix_fmt yuv420p \
-c:s mov_text -metadata:s:s:0 language=deu \
mov-text.mp4
rm -f ger.srt
fi
echo "Test fixtures generated:"
ls -la *.mkv *.mp4 2>/dev/null || true