58 lines
1.6 KiB
Bash
58 lines
1.6 KiB
Bash
#!/bin/bash
|
|
# GPU Detection Diagnostic Script
|
|
# Run this inside the Docker container to check GPU availability
|
|
|
|
echo "========================================"
|
|
echo "GPU Detection Diagnostic"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
echo "1. Checking /dev/dri devices..."
|
|
ls -lah /dev/dri/ 2>&1 || echo "ERROR: /dev/dri not found!"
|
|
echo ""
|
|
|
|
echo "2. Checking FFmpeg version..."
|
|
ffmpeg -version | head -5
|
|
echo ""
|
|
|
|
echo "3. Checking FFmpeg encoders..."
|
|
ffmpeg -hide_banner -encoders 2>&1 | grep -i "qsv\|nvenc\|vaapi\|x265\|x264"
|
|
echo ""
|
|
|
|
echo "4. Checking for Intel QSV specifically..."
|
|
if ffmpeg -hide_banner -encoders 2>&1 | grep -qi "hevc_qsv"; then
|
|
echo "[OK] Intel QSV H.265 (hevc_qsv) is available"
|
|
else
|
|
echo "[FAIL] Intel QSV H.265 (hevc_qsv) NOT found"
|
|
fi
|
|
|
|
if ffmpeg -hide_banner -encoders 2>&1 | grep -qi "h264_qsv"; then
|
|
echo "[OK] Intel QSV H.264 (h264_qsv) is available"
|
|
else
|
|
echo "[FAIL] Intel QSV H.264 (h264_qsv) NOT found"
|
|
fi
|
|
echo ""
|
|
|
|
echo "5. Checking vainfo (Intel GPU information)..."
|
|
vainfo 2>&1 | head -20
|
|
echo ""
|
|
|
|
echo "6. Testing QSV encoding (if available)..."
|
|
if ffmpeg -hide_banner -encoders 2>&1 | grep -qi "hevc_qsv"; then
|
|
echo "Running test encode with QSV..."
|
|
ffmpeg -f lavfi -i testsrc=duration=1:size=1280x720:rate=30 \
|
|
-c:v hevc_qsv -preset medium -global_quality 23 \
|
|
-f null - 2>&1 | tail -10
|
|
else
|
|
echo "Skipping QSV test (encoder not available)"
|
|
fi
|
|
echo ""
|
|
|
|
echo "7. Checking hardware acceleration..."
|
|
ffmpeg -hide_banner -hwaccels 2>&1
|
|
echo ""
|
|
|
|
echo "========================================"
|
|
echo "Diagnostic Complete"
|
|
echo "========================================"
|