diff --git a/videoarchiver/README.md b/videoarchiver/README.md index cd681ff..ab5755a 100644 --- a/videoarchiver/README.md +++ b/videoarchiver/README.md @@ -5,12 +5,17 @@ A powerful video archiving cog that automatically downloads and reposts videos f ## Features - **Hardware-Accelerated Video Processing**: - - NVIDIA GPU support using NVENC - - AMD GPU support using AMF - - Intel GPU support using QuickSync + - NVIDIA GPU support using NVENC with advanced encoding options + - AMD GPU support using AMF with quality preservation + - Intel GPU support using QuickSync with look-ahead - ARM64/aarch64 support with V4L2 M2M encoder - - Multi-core CPU optimization + - Multi-core CPU optimization with advanced parameters + - Automatic GPU fallback to CPU if hardware encoding fails - **Smart Video Processing**: + - Content-aware video analysis + - Dark scene detection and optimization + - Motion detection and adaptation + - Dynamic audio bitrate allocation - Intelligent quality preservation - Only compresses when needed - Concurrent video processing @@ -25,9 +30,17 @@ A powerful video archiving cog that automatically downloads and reposts videos f - Automatic quality selection - **Automatic Updates**: - Automatic yt-dlp update checking + - Semantic version comparison - Bot owner notifications for new versions - Easy update command - Configurable update notifications + - Retries for update operations +- **Error Handling & Logging**: + - Detailed error logging to Discord channels + - Full error tracebacks for debugging + - Automatic retries for Discord operations + - Proper resource cleanup + - Task tracking and management ## Installation @@ -54,7 +67,7 @@ To install this cog, follow these steps: Replace `[p]` with your bot's prefix. -The required dependencies (yt-dlp, ffmpeg-python, requests) will be installed automatically. You will also need FFmpeg installed on your system - the cog will attempt to download and manage FFmpeg automatically if it's not found. +The required dependencies (yt-dlp, ffmpeg-python, requests, aiohttp) will be installed automatically. You will also need FFmpeg installed on your system - the cog will attempt to download and manage FFmpeg automatically if it's not found. ### Important: Keeping yt-dlp Updated @@ -118,16 +131,45 @@ etc. ## Architecture Support -The cog supports multiple architectures: -- x86_64/amd64 -- ARM64/aarch64 -- ARMv7 (32-bit) -- Apple Silicon (M1/M2) +The cog supports multiple architectures with intelligent hardware detection: +- x86_64/amd64: Full GPU support with automatic encoder testing +- ARM64/aarch64: Hardware encoding with automatic capability detection +- ARMv7 (32-bit): Optimized CPU encoding +- Apple Silicon (M1/M2): Native ARM support -Hardware acceleration is automatically configured based on your system: -- x86_64: Full GPU support (NVIDIA, AMD, Intel) -- ARM64: V4L2 M2M hardware encoding when available -- All platforms: Multi-core CPU optimization +Hardware acceleration features: +- Automatic GPU detection and testing +- Fallback to CPU if GPU encoding fails +- Dynamic encoder parameter optimization +- Multi-pass encoding for better quality +- Content-aware encoding settings + +## Error Handling + +The cog includes comprehensive error handling: + +1. **Discord API Operations**: + - Automatic retries for failed operations + - Configurable retry attempts and delays + - Proper error logging to Discord channels + +2. **Video Processing**: + - Automatic GPU fallback if hardware encoding fails + - Temporary file cleanup on errors + - Resource leak prevention + - Task cancellation handling + +3. **Update Management**: + - Proper version comparison + - Network timeout handling + - Update notification retries + - Error context preservation + +4. **Resource Management**: + - Proper task tracking and cleanup + - Component lifecycle management + - File handle cleanup + - Memory leak prevention ## Troubleshooting @@ -138,6 +180,7 @@ Hardware acceleration is automatically configured based on your system: - Bot needs "Use Application Commands" for slash commands 2. **Video Processing Issues**: + - Check log channel for detailed error messages - Ensure FFmpeg is properly installed - Check GPU drivers are up to date - Verify file permissions in the downloads directory @@ -146,26 +189,31 @@ Hardware acceleration is automatically configured based on your system: 3. **Role Issues**: - Verify role hierarchy (bot's role must be higher than managed roles) - Check if roles are properly configured + - Check log channel for permission errors 4. **Performance Issues**: - Check available disk space - Monitor system resource usage + - Check log channel for encoding errors + - Verify GPU availability and status ## Support For support: 1. First, check the [Troubleshooting](#troubleshooting) section above -2. Update yt-dlp to the latest version: +2. Check the log channel for detailed error messages +3. Update yt-dlp to the latest version: ```bash [p]videoarchiver updateytdlp ``` -3. If the issue persists after updating yt-dlp: +4. If the issue persists after updating yt-dlp: - Join the Red-DiscordBot server and ask in the #support channel - Open an issue on GitHub with: - Your Red-Bot version - The output of `[p]pipinstall list` - Steps to reproduce the issue - - Any error messages + - Any error messages from the log channel + - Your hardware configuration (CPU/GPU) ## Contributing @@ -180,7 +228,9 @@ Before submitting an issue: - Your Red-Bot version - The output of `[p]pipinstall list` - Steps to reproduce the issue - - Any error messages + - Any error messages from the log channel + - Your hardware configuration (CPU/GPU) + - FFmpeg version and configuration ## License