upgrade: gwencoder v3.1 with interactive menu and Tdarr alignment

This commit is contained in:
GWEncoder Developer
2026-03-23 15:48:34 -07:00
parent 27feea3662
commit 91532ef07f
57 changed files with 9455 additions and 944 deletions

70
gwencoder/scripts/run_tests.sh Executable file
View File

@@ -0,0 +1,70 @@
#!/bin/bash
# Quick test script for different encoding combinations
# Tests default settings and 2-3 other combinations
TEST_FILE="../tests/artifacts/testvid.webm"
RESULTS="../tests/logs/test_results.txt"
echo "══════════════════════════════════════════════════════════════" | tee "$RESULTS"
echo "GWENCODER PHASE 2 TEST RUNS" | tee -a "$RESULTS"
echo "══════════════════════════════════════════════════════════════" | tee -a "$RESULTS"
echo "" | tee -a "$RESULTS"
echo "Test file: $TEST_FILE" | tee -a "$RESULTS"
echo "Started: $(date)" | tee -a "$RESULTS"
echo "" | tee -a "$RESULTS"
# Test 1: Default settings (Fast mode)
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" | tee -a "$RESULTS"
echo "TEST 1: Default Settings (--fast mode)" | tee -a "$RESULTS"
echo "Settings: Custom quality preset, stream reordering enabled, CRF 28" | tee -a "$RESULTS"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" | tee -a "$RESULTS"
start1=$(date +%s)
./gwencoder --fast 2>&1 | tee ../tests/logs/test1_output.log | grep -E "(Encoding|CRF|preset|audio|Reordering|complete|size|Duration|Resolution)" | tee -a "$RESULTS"
end1=$(date +%s)
duration1=$((end1 - start1))
output1=$(ls -t testvid-AV1-Fast-GWELL.mkv 2>/dev/null | head -1)
size1=$(du -h "$output1" 2>/dev/null | cut -f1)
echo "Duration: ${duration1}s | Output: $output1 ($size1)" | tee -a "$RESULTS"
echo "" | tee -a "$RESULTS"
# Test 2: Web mode (different container, higher CRF)
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" | tee -a "$RESULTS"
echo "TEST 2: Web Mode (--web)" | tee -a "$RESULTS"
echo "Settings: WEBM container, CRF 35, stream reordering enabled" | tee -a "$RESULTS"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" | tee -a "$RESULTS"
start2=$(date +%s)
./gwencoder --web 2>&1 | tee ../tests/logs/test2_output.log | grep -E "(Encoding|CRF|preset|audio|Reordering|complete|size|Duration|Resolution)" | tee -a "$RESULTS"
end2=$(date +%s)
duration2=$((end2 - start2))
output2=$(ls -t testvid-AV1-Web-GWELL.webm 2>/dev/null | head -1)
size2=$(du -h "$output2" 2>/dev/null | cut -f1)
echo "Duration: ${duration2}s | Output: $output2 ($size2)" | tee -a "$RESULTS"
echo "" | tee -a "$RESULTS"
# Test 3: Tiny mode (maximum compression)
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" | tee -a "$RESULTS"
echo "TEST 3: Tiny Mode (--tiny)" | tee -a "$RESULTS"
echo "Settings: MP4 container, CRF 42, maximum compression" | tee -a "$RESULTS"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" | tee -a "$RESULTS"
start3=$(date +%s)
./gwencoder --tiny 2>&1 | tee ../tests/logs/test3_output.log | grep -E "(Encoding|CRF|preset|audio|Reordering|complete|size|Duration|Resolution)" | tee -a "$RESULTS"
end3=$(date +%s)
duration3=$((end3 - start3))
output3=$(ls -t testvid-AV1-Tiny-GWELL.mp4 2>/dev/null | head -1)
size3=$(du -h "$output3" 2>/dev/null | cut -f1)
echo "Duration: ${duration3}s | Output: $output3 ($size3)" | tee -a "$RESULTS"
echo "" | tee -a "$RESULTS"
# Summary
echo "══════════════════════════════════════════════════════════════" | tee -a "$RESULTS"
echo "TEST SUMMARY" | tee -a "$RESULTS"
echo "══════════════════════════════════════════════════════════════" | tee -a "$RESULTS"
echo "Test 1 (Fast): ${duration1}s | $size1" | tee -a "$RESULTS"
echo "Test 2 (Web): ${duration2}s | $size2" | tee -a "$RESULTS"
echo "Test 3 (Tiny): ${duration3}s | $size3" | tee -a "$RESULTS"
echo "" | tee -a "$RESULTS"
echo "Completed: $(date)" | tee -a "$RESULTS"
echo "" | tee -a "$RESULTS"
echo "Full results saved to: $RESULTS" | tee -a "$RESULTS"