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

FFMpegCore হল একটি .NET Standard লাইব্রেরি যা FFMpeg এবং FFProbe কমান্ড-লাইন টুলকে মোড়ক হিসেবে ব্যবহার করে, যার ফলে .NET অ্যাপ্লিকেশন থেকে মিডিয়া বিশ্লেষণ এবং রূপান্তর করা সম্ভব হয়। এটি সিঙ্ক্রোনাস এবং অ্যাসিঙ্ক্রোনাস উভয় ধরনের কল সমর্থন করে। মিডিয়া বিশ্লেষণ FFProbe-এর মাধ্যমে করা হয়, যা Analyse বা AnalyseAsync-এর মাধ্যমে প্রদত্ত ইনপুট পাথের জন্য মিডিয়া তথ্য ফেরত দেয়। রূপান্তর FFMpeg-এর মাধ্যমে একটি ফ্লুয়েন্ট আর্গুমেন্ট বিল্ডার ব্যবহার করে পরিচালিত হয়। ইনপুট ফাইল বা পাইপ থেকে আসতে পারে, এবং আউটপুট ফাইল বা পাইপে যেতে পারে। অপশনগুলির মধ্যে ভিডিও এবং অডিও কোডেক, কনস্ট্যান্ট রেট ফ্যাক্টর, ভেরিয়েবল বিটরেট, স্কেলিং-এর মতো ভিডিও ফিল্টার এবং ওয়েব প্লেব্যাকের জন্য ফাস্টস্টার্ট অন্তর্ভুক্ত। লাইব্রেরিটি স্ট্রিমে এবং স্ট্রিম থেকে রূপান্তরও সমর্থন করে, উদাহরণস্বরূপ VP9/WebM আউটপুট একটি স্ট্রিমে লেখা। হেল্পার মেথডগুলি সাধারণ কাজগুলো সহজ করে: ভিডিও থেকে ইমেজ স্ন্যাপশট ক্যাপচার (ডিস্কে সংরক্ষণ বা ঐচ্ছিক System.Drawing.Common বা SkiaSharp এক্সটেনশন প্যাকেজের মাধ্যমে মেমরিতে প্রসেস করা), ঐচ্ছিক অ্যাসপেক্ট-রেশিও-সংরক্ষণকারী রিসাইজ সহ GIF স্ন্যাপশট ক্যাপচার, ভিডিও অংশ জোড়া লাগানো, সময় পরিসীমা অনুযায়ী সাব-ভিডিও তৈরি, ইমেজ সিকোয়েন্সকে ভিডিওতে জোড়া লাগানো, অডিও মিউট করা, অডিও ট্র্যাক নিষ্কাশন, অডিও ট্র্যাক প্রতিস্থাপন এবং একটি স্থির ইমেজের সাথে অডিও ফাইল একত্রিত করা। ইনপুট পাইপিং প্রোগ্রাম মেমরি থেকে সরাসরি ভিডিও ফ্রেম লেখার অনুমতি দেয়, মধ্যবর্তী ইমেজ ফাইল সংরক্ষণের প্রয়োজন ছাড়াই, এবং ফ্রেম তৈরি বা গ্রহণের সময় অন-দ্য-ফ্লাই রূপান্তর সক্ষম করে। IPipeSource ইন্টারফেসে স্ট্রিম, র-ভিডিও ফ্রেম এবং র-অডিও স্যাম্পলের জন্য বাস্তবায়ন রয়েছে। র-ভিডিও ফ্রেম সোর্স একটি ফ্রেম রেট সেট করতে পারে, এবং ইমেজ এক্সটেনশন প্যাকেজগুলি System.Drawing.Bitmap বা SKBitmap-কে ফ্রেম ইন্টারফেসে অভিযোজিত করার জন্য র্যাপার প্রদান করে। বাইনারিগুলি রানটাইমে FFMpegCore.Extensions.Downloader প্যাকেজের মাধ্যমে ইনস্টল করা যেতে পারে, যা ffbinaries API ব্যবহার করে একটি কনফিগার করা বাইনারি ফোল্ডারে ffmpeg এবং ffprobe ডাউনলোড করে। বিকল্পভাবে, বাইনারিগুলি ম্যানুয়ালি প্যাকেজ ম্যানেজার যেমন Windows-এ Chocolatey, macOS-এ Homebrew বা Ubuntu-তে apt-এর মাধ্যমে ইনস্টল করা যেতে পারে। পাথ কনফিগারেশন বিশ্বব্যাপী FFOptions ক্লাসের মাধ্যমে, প্রতি রানে, বা প্রথম ব্যবহারে পড়া একটি ffmpeg.config.json ফাইলের মাধ্যমে উপলব্ধ। অপশনগুলির মধ্যে বাইনারি ফোল্ডার, অস্থায়ী ফাইল ফোল্ডার এবং কাজের ডিরেক্টরি অন্তর্ভুক্ত। মিশ্র 32-বিট এবং 64-বিট ডিপ্লয়মেন্টের জন্য, বাইনারি ফোল্ডারের ভিতরে পৃথক x64 এবং x86 সাবফোল্ডার আর্কিটেকচার-নির্দিষ্ট বাইনারি ধারণ করতে পারে; অন্যথায় লাইব্রেরি সরাসরি বাইনারি ফোল্ডারে খোঁজে। প্রকল্পটি উল্লেখ করেছে যে পুরানো ffmpeg সংস্করণগুলি লাইব্রেরি দ্বারা প্রকাশিত প্রতিটি আর্গুমেন্ট সমর্থন নাও করতে পারে, এবং CI ffmpeg 8.1-এর বিরুদ্ধে পরীক্ষা করে। এটি MIT লাইসেন্সের অধীনে প্রকাশিত।