8000 GitHub - furyolo/VideoToGIF: A modern desktop app that converts videos to high-quality GIFs with text overlay and cropping features. Built with Python/PySide6, featuring Apple-style UI and automatic dependency management.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

A modern desktop app that converts videos to high-quality GIFs with text overlay and cropping features. Built with Python/PySide6, featuring Apple-style UI and automatic dependency management.

Notifications You must be signed in to change notification settings

furyolo/VideoToGIF

Repository files navigation

VideoToGIF

🇨🇳 中文文档 | English (Current)

A modern, user-friendly desktop application for converting video files to high-quality animated GIFs with advanced features like text overlay and video cropping.

License: MIT Python 3.12+ Platform: Windows

✨ Features

  • 🎬 Video to GIF Conversion: Support for multiple video formats (MP4, AVI, MOV, MKV, WMV, FLV, WebM)
  • ✂️ Video Cropping: Precise region selection with interactive drag-and-drop interface
  • 📝 Text Overlay: Add custom text with configurable font, size, color, and position
  • ⚙️ Advanced Parameters:
    • Customizable frame rate (FPS)
    • Adjustable output dimensions
    • Quality control
    • Loop count settings
    • Fast mode for quick processing
  • 🔧 Automatic Dependency Management: Auto-detection and installation of required tools (ffmpeg, gifski)
  • 🌍 Multi-language Support: English and Chinese interface with automatic system language detection
  • 🎨 Modern Apple-style UI: Clean, intuitive interface with Apple design language
  • 📁 Smart Path Memory: Remembers last import/export locations for convenience

🛠️ Installation

Prerequisites

  • Python 3.12+ (recommended)
  • Windows operating system (primary target)

Quick Start

  1. Clone the repository:

    git clone <repository-url>
    cd VideoToGIF
  2. Install dependencies:

    uv sync
  3. Run the application:

    uv run python main.py

External Dependencies

The application automatically manages external tools:

  • ffmpeg: For video processing and frame extraction
  • gifski: For high-quality GIF generation

On first run, the app will check for these tools and offer to install them via Scoop (Windows package manager).

🚀 Usage

  1. Launch the Application

    • Run uv run python main.py from the project root
  2. Import Video

    • Double-click the video preview area or click "Import Video..."
    • Select your video file (supports MP4, AVI, MOV, MKV, WMV, FLV, WebM)
  3. Configure Parameters

    • Basic Parameters: Set start time, duration, frame rate, quality, dimensions
    • Video Cropping: Enable cropping and select region by dragging on video preview
    • Text Overlay: Add custom text with position and styling options
  4. Generate GIF

    • Click "Generate GIF"
    • Choose save location (defaults to video file directory)
    • Wait for processing to complete
  5. Preview Result

    • Click "Preview" to open the generated GIF

🏗️ Architecture

The application follows a modular architecture with clear separation of concerns:

  • MainApplication: Core coordinator and application lifecycle manager
  • UIModule: Modern PySide6-based user interface with Apple design
  • VideoProcessingModule: Video analysis and frame extraction
  • GifGenerationModule: GIF creation orchestration
  • DependencyManagementModule: External tool management
  • ExternalCommandModule: Safe external command execution
  • ConfigurationModule: Settings and preferences management
  • LanguageModule: Multi-language support system

🌐 Language Support

The application supports:

  • English (default for non-Chinese systems)
  • 中文 (default for Chinese systems)

Language is automatically detected from system locale and can be changed via the Language button in the interface.

🔧 Configuration

Settings are stored in config.json and include:

  • External tool paths
  • User preferences
  • Last used directories
  • Language selection

🧪 Testing

Run the test suite:

uv run python -m pytest tests/

🤝 Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

📄 License

This project is licensed under the MIT License.

About

A modern desktop app that converts videos to high-quality GIFs with text overlay and cropping features. Built with Python/PySide6, featuring Apple-style UI and automatic dependency management.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0