import readline from "readline"; import { generateTestVideo, EncodingType } from "./ffmpeg"; const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const questionAsync = (query: string) => { return new Promise((resolve) => { rl.question(query, resolve); }); }; const main = async () => { console.log("Testing software encoder: "); await generateTestVideo(EncodingType.CPU).catch(console.error); const answer = await questionAsync( "Would you like to test other hardware encoders? (yes/no): ", ); if (answer.toLowerCase() === "yes") { const encoder = await questionAsync( "Which hardware encoder would you like to test? (INTEL/NVIDIA/AMD/APPLE): ", ); let selectedEncoder: EncodingType; switch (encoder.toUpperCase()) { case "INTEL": selectedEncoder = EncodingType.INTEL; break; case "NVIDIA": selectedEncoder = EncodingType.NVIDIA; break; case "AMD": selectedEncoder = EncodingType.AMD; break; case "APPLE": selectedEncoder = EncodingType.APPLE; break; default: console.log("Invalid choice. Exiting."); rl.close(); return; } console.log(`Testing ${selectedEncoder} encoder:`); await generateTestVideo(selectedEncoder).catch(console.error); } else { console.log("Exiting."); } rl.close(); }; main().catch((err) => { console.error("An error occurred:", err); rl.close(); });