AI ভিডিও জেনারেটর প্রো body { font-family: ‘Hind Siliguri’, sans-serif; background-color: #0f172a; /* Slate 900 */ } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #1e293b; } ::-webkit-scrollbar-thumb { background: #475569; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #64748b; } .gradient-text { background: linear-gradient(to right, #a855f7, #ec4899); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .loader { border: 4px solid #f3f3f3; border-top: 4px solid #a855f7; border-radius: 50%; width: 40px; height: 40px; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Glass effect */ .glass-panel { background: rgba(30, 41, 59, 0.7); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); } .animate-fade-in { animation: fadeIn 0.5s ease-in; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
AI Vision

আপনার কল্পনাকে ভিডিওতে রূপ দিন

কেবল টেক্সট লিখুন, বাকি কাজ আমাদের AI করবে।

বাস্তবধর্মী (Realistic) অ্যানিমে (Anime) থ্রিডি রেন্ডার (3D Render) সাইবারপাঙ্ক (Cyberpunk) ল্যান্ডস্কেপ (16:9) পোর্ট্রেট (9:16) স্কয়ার (1:1)

সম্প্রতি তৈরি করা হয়েছে

ডেমো: সমুদ্র সৈকতে সূর্যাস্ত…

ডেমো

প্রিভিউ

ভিডিও দেখতে বাম পাশ থেকে একটি প্রম্পট জেনারেট করুন।

ভিডিও সফলভাবে তৈরি হয়েছে!
// স্মার্ট ডেটাবেস: কীওয়ার্ড ভিত্তিক ভিডিও সিলেকশন const videoDatabase = [ { keywords: [‘city’, ‘town’, ‘future’, ‘cyberpunk’, ‘tech’, ‘building’, ‘car’, ‘শহর’, ‘বিল্ডিং’], url: ‘https://videos.pexels.com/video-files/856973/856973-sd_640_360_24fps.mp4’ }, { keywords: [‘nature’, ‘forest’, ‘tree’, ‘green’, ‘river’, ‘water’, ‘mountain’, ‘hill’, ‘প্রকৃতি’, ‘গাছ’, ‘পাহাড়’], url: ‘https://videos.pexels.com/video-files/855018/855018-sd_640_360_25fps.mp4’ }, { keywords: [‘sea’, ‘beach’, ‘ocean’, ‘sunset’, ‘sun’, ‘waves’, ‘relax’, ‘সমুদ্র’, ‘সৈকত’, ‘সূর্য’], url: ‘https://videos.pexels.com/video-files/3129671/3129671-sd_640_360_24fps.mp4’ }, { keywords: [‘space’, ‘sky’, ‘star’, ‘universe’, ‘planet’, ‘galaxy’, ‘moon’, ‘night’, ‘মহাকাশ’, ‘আকাশ’, ‘চাঁদ’], url: ‘https://videos.pexels.com/video-files/1448735/1448735-sd_640_360_24fps.mp4’ }, { keywords: [‘abstract’, ‘art’, ‘color’, ‘paint’, ‘dream’, ‘magic’, ‘রং’, ‘শিল্প’], url: ‘https://videos.pexels.com/video-files/2795405/2795405-sd_640_360_25fps.mp4’ }, { keywords: [‘tech’, ‘computer’, ‘code’, ‘hacker’, ‘digital’, ‘screen’, ‘প্রযুক্তি’, ‘কম্পিউটার’], url: ‘https://videos.pexels.com/video-files/5377684/5377684-sd_640_360_25fps.mp4’ } ]; // ডিফল্ট ভিডিও (যদি কোনো কীওয়ার্ড না মেলে) const fallbackVideos = videoDatabase.map(v => v.url); const loadingTexts = [ “প্রম্পট বিশ্লেষণ করা হচ্ছে…”, “AI কনসেপ্ট জেনারেট করছে…”, “ফ্রেম কম্পোজিশন তৈরি হচ্ছে…”, “রেন্ডারিং চলছে (GPU)…”, “কালার গ্রেডিং করা হচ্ছে…”, “ফাইনাল ভিডিও এনকোডিং…” ]; let isGenerating = false; function findBestMatchVideo(prompt) { const lowerPrompt = prompt.toLowerCase(); // সব ভিডিও চেক করি, কোনটার কীওয়ার্ড প্রম্পটে আছে const matchedVideo = videoDatabase.find(video => { return video.keywords.some(keyword => lowerPrompt.includes(keyword)); }); if (matchedVideo) { return matchedVideo.url; } else { // কোনো ম্যাচ না পেলে র‍্যান্ডম ভিডিও return fallbackVideos[Math.floor(Math.random() * fallbackVideos.length)]; } } function generateVideo() { const prompt = document.getElementById(‘promptInput’).value.trim(); if (!prompt) { showToastMsg(“দয়া করে প্রথমে কিছু লিখুন (প্রম্পট দিন)।”, true); return; } if (isGenerating) return; isGenerating = true; // UI Update Start const btn = document.getElementById(‘generateBtn’); const originalBtnText = btn.innerHTML; btn.innerHTML = ` জেনারেট হচ্ছে…`; btn.classList.add(‘opacity-70’, ‘cursor-not-allowed’); // Hide previous results document.getElementById(’emptyState’).classList.add(‘hidden’); document.getElementById(‘videoContainer’).classList.add(‘hidden’); document.getElementById(‘loadingState’).classList.remove(‘hidden’); document.getElementById(‘actionButtons’).classList.add(‘opacity-50’, ‘pointer-events-none’); // Reset Progress const progressBar = document.getElementById(‘progressBar’); const progressPercent = document.getElementById(‘progressPercent’); progressBar.style.width = ‘0%’; progressPercent.innerText = ‘0%’; // Simulation Logic (4 seconds) let duration = 4000; let intervalTime = 100; let elapsedTime = 0; let textIndex = 0; const simInterval = setInterval(() => { elapsedTime += intervalTime; let percent = Math.min(100, Math.floor((elapsedTime / duration) * 100)); // Update Progress Bar progressBar.style.width = `${percent}%`; progressPercent.innerText = `${percent}%`; // Update Loading Text periodically if (elapsedTime % 800 === 0 && textIndex = duration) { clearInterval(simInterval); finishGeneration(prompt); // Reset Button btn.innerHTML = originalBtnText; btn.classList.remove(‘opacity-70’, ‘cursor-not-allowed’); isGenerating = false; } }, intervalTime); } function finishGeneration(prompt) { document.getElementById(‘loadingState’).classList.add(‘hidden’); // Find appropriate video based on prompt const selectedVideoUrl = findBestMatchVideo(prompt); const videoPlayer = document.getElementById(‘mainVideoPlayer’); const container = document.getElementById(‘videoContainer’); // Load Video videoPlayer.src = selectedVideoUrl; videoPlayer.load(); // Force reload // Handle Video Error (Fallback) videoPlayer.onerror = function() { console.log(“Video failed to load, trying fallback.”); videoPlayer.src = fallbackVideos[0]; }; container.classList.remove(‘hidden’); // Enable buttons document.getElementById(‘actionButtons’).classList.remove(‘opacity-50’, ‘pointer-events-none’); showToastMsg(“ভিডিও সফলভাবে তৈরি হয়েছে!”); addToGallery(selectedVideoUrl, prompt); } function addToGallery(videoSrc, prompt) { const grid = document.getElementById(‘galleryGrid’); const newItem = document.createElement(‘div’); newItem.className = ‘group relative aspect-video bg-slate-800 rounded-xl overflow-hidden border border-slate-700 cursor-pointer hover:border-purple-500 transition-all animate-fade-in’; newItem.innerHTML = `

${prompt}

NEW
`; // Insert at the beginning grid.insertBefore(newItem, grid.firstChild); } function showToastMsg(msg, isError = false) { const toast = document.getElementById(‘toast’); const toastText = document.getElementById(‘toastMsg’); const icon = toast.querySelector(‘i’); toastText.innerText = msg; if(isError) { icon.className = “fa-solid fa-circle-exclamation text-red-400”; toast.classList.add(‘border-red-500/50’); } else { icon.className = “fa-solid fa-check-circle text-green-400”; toast.classList.remove(‘border-red-500/50’); } toast.classList.remove(‘translate-y-20’, ‘opacity-0’); setTimeout(() => { toast.classList.add(‘translate-y-20’, ‘opacity-0’); }, 3000); } function downloadVideo() { const videoSrc = document.getElementById(‘mainVideoPlayer’).src; if(videoSrc) { // Create a temporary anchor const a = document.createElement(‘a’); a.href = videoSrc; a.target = ‘_blank’; // Opens in new tab which usually triggers download for video files a.download = `ai_vision_${Date.now()}.mp4`; // Hint for download name document.body.appendChild(a); a.click(); document.body.removeChild(a); showToastMsg(“ডাউনলোড শুরু হচ্ছে…”); } } function shareVideo() { // Copy URL to clipboard const videoSrc = document.getElementById(‘mainVideoPlayer’).src; navigator.clipboard.writeText(videoSrc).then(() => { showToastMsg(“লিঙ্ক ক্লিপবোর্ডে কপি হয়েছে!”); }).catch(err => { showToastMsg(“কপি করতে সমস্যা হয়েছে”, true); }); }