feat: initial release — SRT Streamer v1.0.0
Cross-platform Electron + React + FFmpeg desktop app for sending multiple SRT streams simultaneously. Features: - Multiple simultaneous SRT output streams - Video sources: desktop, window capture, cameras, capture cards - Audio sources: microphones, system loopback, sound cards - H.264 encoding with HW acceleration (NVENC/QSV/AMF/VideoToolbox) - SRT modes: caller / listener / rendezvous - Frame profile presets (4K, 1080p, 720p, 480p, 360p) - Tolbek SRT receiver with configurable mode - System tray: minimize-to-tray, exit confirmation dialog - Portable build via electron-builder Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* Run with: node assets/generate-icons.js
|
||||
* Requires: npm install sharp (dev only)
|
||||
* Generates PNG icons from SVG for all platforms.
|
||||
* If sharp is not available, falls back to copying a placeholder.
|
||||
*/
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
async function generate() {
|
||||
const svgPath = path.join(__dirname, 'icon.svg')
|
||||
const svgData = fs.readFileSync(svgPath)
|
||||
|
||||
try {
|
||||
const sharp = require('sharp')
|
||||
// PNG 512x512
|
||||
await sharp(svgData).resize(512, 512).png().toFile(path.join(__dirname, 'icon.png'))
|
||||
console.log('icon.png generated')
|
||||
|
||||
// Tray icon 32x32
|
||||
await sharp(svgData).resize(32, 32).png().toFile(path.join(__dirname, 'tray-icon.png'))
|
||||
console.log('tray-icon.png generated')
|
||||
|
||||
console.log('Done. For ICO/ICNS, use electron-icon-builder or convert manually.')
|
||||
} catch (e) {
|
||||
console.log('sharp not available, creating placeholder PNG...')
|
||||
// Create a minimal 1x1 placeholder PNG (will work as fallback)
|
||||
const minPng = Buffer.from(
|
||||
'89504e470d0a1a0a0000000d49484452000000010000000108020000009001' +
|
||||
'2e000000000c4944415408d76360f8cfc00000000200017e21bc330000000049454e44ae426082',
|
||||
'hex'
|
||||
)
|
||||
fs.writeFileSync(path.join(__dirname, 'icon.png'), minPng)
|
||||
fs.writeFileSync(path.join(__dirname, 'tray-icon.png'), minPng)
|
||||
console.log('Placeholder icons created.')
|
||||
}
|
||||
}
|
||||
|
||||
generate().catch(console.error)
|
||||
Reference in New Issue
Block a user