|
1 | | -# HackDVB-GUI |
| 1 | +*HackDVB GUI |
| 2 | +A user-friendly graphical interface for creating and broadcasting DVB-S/S2 transport streams using FFmpeg, TSDuck, and DekTec hardware. |
| 3 | + |
| 4 | +HackDVB GUI is the spiritual digital successor to the analogue HackTV project. It provides a comprehensive suite of tools to encode media files, multiplex them into multiple services (channels), generate the necessary DVB tables (including a full EPG), and broadcast the resulting stream with a DekTec modulator card. |
| 5 | + |
| 6 | +!HackDVB GUI Screenshot (Suggestion: Replace the link above with a real screenshot of your application) |
| 7 | + |
| 8 | +*Features |
| 9 | +HackDVB GUI is designed to simplify the complex process of DVB broadcasting by providing a powerful, all-in-one interface. |
| 10 | + |
| 11 | +*Core Broadcasting Features |
| 12 | +Multi-Service Multiplexing: Create multiple TV and Radio channels within a single broadcast stream. |
| 13 | +Hardware-Accelerated Encoding: Offload CPU-intensive tasks to your GPU with support for NVIDIA CUDA (NVENC) and Intel Quick Sync Video (QSV). |
| 14 | +Advanced Encoding Options: Full control over video/audio codecs (MPEG-2, H.264, MP2, AC3, AAC), bitrates, presets, resolutions, framerates, and more. |
| 15 | +DVB-S & DVB-S2 Support: Configure all necessary transmission parameters, including modulation, FEC, symbol rate, and frequency, with an automatic Mux Rate calculator. |
| 16 | +Comprehensive Input Support: Use single media files, FFmpeg concat playlists, user-friendly managed playlists, or live UDP/IP streams as sources. |
| 17 | +Full EPG Management: |
| 18 | +A powerful EPG Editor to create, edit, and manage your broadcast schedule. |
| 19 | +Auto-generate EPG from media file durations, complete with metadata options. |
| 20 | +Automatic gap-filling to ensure a valid and displayable EPG on receivers. |
| 21 | +Subtitle Flexibility: |
| 22 | +Burn-in: Permanently render external .srt or .ass subtitles onto the video. |
| 23 | +DVB Subtitles: Pass through embedded subtitle tracks from the source file for viewer-toggleable subtitles. |
| 24 | +Audio Control: Select multiple audio tracks from your source files for multi-language broadcasts and apply EBU R128 loudness normalization for consistent volume. |
| 25 | +Utility & Workflow |
| 26 | +Standalone Media Tools: A dedicated "Tools" tab for batch processing files: |
| 27 | +Video Converter: Re-encode files to standard formats. |
| 28 | +Remux to TS: Quickly repackage .mp4 or .mkv files into a .ts container without re-encoding. |
| 29 | +Bitrate Converter: Re-encode files to a different bitrate. |
| 30 | +Subtitle Ripper: Extract embedded subtitles into .srt or .ass files. |
| 31 | +Live Previews: See the generated ffmpeg and tsp commands update in real-time as you change settings. |
| 32 | +Detailed Logging: View live log output from all backend processes to monitor performance and troubleshoot errors. |
| 33 | +Save & Load Configurations: Save your entire session—all channels, inputs, and settings—to a single JSON file and load it back later. |
| 34 | +Built-in Documentation: An in-app wiki provides detailed explanations of every feature and the underlying technologies. |
| 35 | +How It Works |
| 36 | +HackDVB GUI acts as an orchestrator for several powerful command-line tools, piping the output of one to the input of the next: |
| 37 | + |
| 38 | +FFmpeg: Handles all media decoding, filtering (subtitles, loudnorm), and re-encoding. It creates a compliant MPEG Transport Stream (MPEG-TS) containing all the video and audio for your services. |
| 39 | +TDT Injector (tdt.exe): A small companion utility that generates TDT/TOT packets, which are essential for a receiver's clock to synchronize and display EPG data correctly. |
| 40 | +TSDuck (tsp): Receives the stream from FFmpeg and performs the final muxing. It injects critical DVB Service Information (SI) tables (like NIT, SDT), injects the EPG data (EIT) from the generated XML file, and merges the time packets from the TDT Injector. |
| 41 | +DekTec Hardware: TSDuck outputs the final, constant-bitrate transport stream to the DekTec modulator card, which converts the digital stream into a real RF signal for broadcast. |
| 42 | +Requirements |
| 43 | +Hardware |
| 44 | +A DekTec DVB-S/S2 Modulator Card (e.g., DTA-2111) with an available PCIe slot. |
| 45 | +CPU: A modern multi-core CPU (Intel Core i5/i7, AMD Ryzen 5 or better) is recommended, especially for multi-channel or HD encoding. |
| 46 | +GPU (Optional but Recommended): An NVIDIA GPU (GTX 1050 or newer) or an Intel CPU with an integrated GPU is highly recommended for hardware-accelerated encoding. |
| 47 | +RAM: 8 GB minimum, 16 GB+ recommended. |
| 48 | +Software |
| 49 | +Python 3.x |
| 50 | +FFmpeg: Must be installed and available in your system's PATH. |
| 51 | +TSDuck: Must be installed and available in your system's PATH. |
| 52 | +TDT Injector (tdt.exe): This utility should be included with the application. |
| 53 | +The application includes a startup dependency checker that will guide you if any of these are missing. |
| 54 | + |
| 55 | +*Usage |
| 56 | +Services Tab: Click "Add Channel" to create a new service. Give it a name, provider, and a unique Program Number (SID). |
| 57 | +Inputs Tab: For each service, select an input type (e.g., Playlist) and add your media files. Use the "Probe Input Tracks" button to detect and select specific audio or embedded subtitle tracks. |
| 58 | +EPG (Optional): Use the "Auto-generate EPG" button for a quick schedule, or open the "Create/Edit EPG" editor for full control. |
| 59 | +Encoding & Muxing Tab: Configure your global video and audio settings. Enable CUDA or QSV if you have compatible hardware. |
| 60 | +DVB Broadcast Tab: Enter the parameters for your satellite transponder (Frequency, Symbol Rate, etc.) and click "Auto-Calculate" for the Mux Rate. |
| 61 | +Start Broadcast: Click the "Start Broadcast" button to begin transmission! Monitor the "Live Log" for status and errors. |
| 62 | +A Note on Encryption |
| 63 | +This application is designed for educational and experimental broadcasting of unencrypted, free-to-air content only. It does not support or include any features for scrambling the broadcast stream with a Conditional Access (CA) system. |
| 64 | + |
| 65 | +*License |
| 66 | +This project is licensed under the MIT License. See the LICENSE file for details. |
0 commit comments