প্রকল্প সম্পর্কে

জিয়াওবাই অটো-এডিটিং (Badminton Auto-Editing) একটি ওপেন সোর্স ব্যাডমিন্টন ম্যাচ ভিডিও স্বয়ংক্রিয় এডিটিং সিস্টেম, যা মূলত ব্যাডমিন্টনপ্রেমী ও কোচদের জন্য তৈরি, যাতে ম্যাচের কার্যকর র‍্যালি অংশ দ্রুত বের করা যায়। প্রকল্পটিতে চারটি প্রধান অংশ রয়েছে: - **ব্যাকএন্ড**: Python FastAPI দিয়ে নির্মিত, অডিও-ভিডিও বিশ্লেষণ, FFmpeg এবং TrackNetV3 ব্যাডমিন্টন ট্র্যাজেক্টরি শনাক্তকরণ মডেল সংযুক্ত করে র‍্যালি শনাক্তকরণ ও এডিটিং প্রসেসিং বাস্তবায়ন করে। - **ফ্রন্টএন্ড**: রেসপনসিভ H5 ইন্টারফেস, ভিডিও আপলোড, AI শনাক্তকরণ স্লাইস টাইমলাইন ভিজ্যুয়াল ফাইন-টিউনিং এবং কমপ্রেশন এক্সপোর্ট সমর্থন করে। - **ডেস্কটপ শেল**: macOS / Windows নেটিভ ডেস্কটপ অ্যাপ, স্থানীয় সার্ভিস স্বয়ংক্রিয়ভাবে চালু করে এবং উইন্ডোতে ওয়ার্কবেঞ্চ খোলে, Uvicorn ম্যানুয়ালি চালানোর প্রয়োজন নেই। - **Android এজ-সাইড অ্যাপ**: স্থানীয় বিশ্লেষণ ও স্থানীয় এক্সপোর্ট সমর্থন করে, ফোনেই চালানো যায়। মূল কার্যপ্রবাহ: 1. রেকর্ডিং আপলোডের পর, স্ক্রিনে চারটি কোণার পয়েন্ট টেনে লক্ষ্য কোর্ট চিহ্নিত করুন। 2. "শনাক্তকরণ শুরু করুন" ক্লিক করলে, সিস্টেম 2kHz-6kHz বলের শব্দ, কোর্ট বহুভুজের মধ্যে স্থানীয় গতি এবং TrackNetV3 ব্যাডমিন্টন ট্র্যাজেক্টরি একত্রিত করে, সার্ভ শুরুর অ্যাকশন পর্যন্ত পেছনে খোঁজে এবং বল পড়ার ট্র্যাজেক্টরি পর্যন্ত সামনে রাখে। 3. কম আত্মবিশ্বাসের র‍্যালি অ্যাম্বার রঙে দেখানো হয়, ব্যবহারকারী টাইমলাইনে সমন্বয় বা মুছে ফেলে এক্সপোর্ট করতে পারেন। এক্সপোর্ট কৌশল: POST /api/v1/video/export/{task_id} এর মাধ্যমে সিস্টেম টেম্প ডিরেক্টরিতে এডিটিং এনকোডিং সম্পন্ন হয় এবং সরাসরি MP4 বা ZIP ফাইল ফেরত দেওয়া হয়। ব্রাউজার একবার ব্যবহারযোগ্য Blob URL দিয়ে ডাউনলোড করে, রেসপন্স ট্রান্সমিশন শেষ হলে সার্ভার সঙ্গে সঙ্গে টেম্প ডিরেক্টরি মুছে ফেলে, চূড়ান্ত ভিডিও সংরক্ষণ করে না। রেসপন্স হেডারে X-Export-Filename, X-File-Size-MB এবং Cache-Control: no-store থাকে। আউটপুট সাইজ সর্বোচ্চ 1080p এবং 720p, এর চেয়ে ছোট সোর্স ভিডিও বড় করা হয় না। সফটওয়্যার এনকোডিং ডিফল্টভাবে libx264 / libx265 ব্যবহার করে, FFMPEG_HWACCEL=true দিয়ে হার্ডওয়্যার এনকোডিং চালু করা যায়। TrackNetV3 মডেল এনভায়রনমেন্ট ভেরিয়েবল দিয়ে নিয়ন্ত্রণ করা যায়: TRACKNET_ENABLED=false বন্ধ করে, TRACKNET_MODEL_PATH ওয়েট পাথ নির্দিষ্ট করে, TRACKNET_DEVICE=cpu|mps|cuda ডিভাইস নির্বাচন করে। মডেল অনুপলব্ধ বা আত্মবিশ্বাস অপর্যাপ্ত হলে স্বয়ংক্রিয়ভাবে কোর্টের অভ্যন্তরীণ গতির ফলে ফিরে যায়। ডেস্কটপ সংস্করণ macOS এবং Windows সমর্থন করে, build_macos.sh বা build_windows.ps1 দিয়ে ইনস্টলেশন প্যাকেজ তৈরি করা যায়। GitHub Actions স্বয়ংক্রিয়ভাবে Release তৈরি করে এবং ইনস্টলেশন প্যাকেজ সংযুক্ত করে। প্রকল্পটি MIT লাইসেন্স ব্যবহার করে, ডিফল্ট ওয়েট ফাইলও MIT লাইসেন্স অনুসরণ করে।