منصوبے کے بارے میں

FFMpegCore ایک .NET Standard لائبریری ہے جو FFMpeg اور FFProbe کمانڈ لائن ٹولز کو لپیٹتی ہے، جس سے میڈیا کا تجزیہ اور تبدیلی .NET ایپلیکیشنز سے قابل رسائی ہوتی ہے۔ یہ ہم وقت ساز اور غیر ہم وقت ساز دونوں کالز کو سپورٹ کرتی ہے۔ میڈیا کا تجزیہ FFProbe کے ذریعے کیا جاتا ہے، جو دیے گئے ان پٹ پاتھ کے لیے میڈیا کی معلومات Analyse یا AnalyseAsync کے ذریعے واپس کرتا ہے۔ تبدیلی FFMpeg کے ذریعے fluent argument builder کا استعمال کرتے ہوئے کی جاتی ہے۔ ان پٹ فائلوں یا pipes سے آ سکتے ہیں، اور آؤٹ پٹ فائلوں یا pipes میں جا سکتے ہیں۔ اختیارات میں ویڈیو اور آڈیو کوڈیکس، constant rate factor، variable bitrate، ویڈیو فلٹرز جیسے اسکیلنگ، اور ویب پلے بیک کے لیے faststart شامل ہیں۔ لائبریری streams میں اور ان سے تبدیلی کو بھی سپورٹ کرتی ہے، مثال کے طور پر VP9/WebM آؤٹ پٹ کو stream میں لکھنا۔ معاون طریقے عام کاموں کو آسان بناتے ہیں: ویڈیو سے تصویری سنیپ شاٹس لینا (ڈسک پر محفوظ یا اختیاری System.Drawing.Common یا SkiaSharp ایکسٹینشن پیکجز کے ذریعے میموری میں پروسیس)، اختیاری aspect-ratio-preserving resize کے ساتھ GIF سنیپ شاٹس لینا، ویڈیو حصوں کو جوڑنا، وقت کی حد کے مطابق ذیلی ویڈیوز بنانا، تصویری سلسلے کو ویڈیو میں جوڑنا، آڈیو میوٹ کرنا، آڈیو ٹریک نکالنا، آڈیو ٹریک تبدیل کرنا، اور ایک جامد تصویر کو آڈیو فائل کے ساتھ ملانا۔ ان پٹ piping پروگرام میموری سے براہ راست ویڈیو فریم لکھنے کی اجازت دیتی ہے بغیر عارضی تصویری فائلیں محفوظ کیے، اور فریموں کی تخلیق یا وصولی کے دوران فوری تبدیلی کو ممکن بناتی ہے۔ IPipeSource انٹرفیس میں streams، raw ویڈیو فریمز اور raw آڈیو نمونوں کے لیے نفاذ موجود ہیں۔ Raw ویڈیو فریم ذرائع فریم ریٹ سیٹ کر سکتے ہیں، اور تصویری ایکسٹینشن پیکجز System.Drawing.Bitmap یا SKBitmap کو فریم انٹرفیس کے مطابق ڈھالنے والے wrappers فراہم کرتے ہیں۔ بائنریز کو رن ٹائم پر FFMpegCore.Extensions.Downloader پیکج کے ذریعے انسٹال کیا جا سکتا ہے، جو ffbinaries API کا استعمال کرتے ہوئے ffmpeg اور ffprobe کو ترتیب شدہ بائنری فولڈر میں لاتا ہے۔ متبادل طور پر، بائنریز کو پیکیج مینیجرز جیسے Windows پر Chocolatey، macOS پر Homebrew، یا Ubuntu پر apt کے ذریعے دستی طور پر انسٹال کیا جا سکتا ہے۔ پاتھ کنفیگریشن عالمی سطح پر FFOptions کلاس کے ذریعے، ہر رن کے لیے، یا پہلے استعمال پر پڑھی جانے والی ffmpeg.config.json فائل کے ذریعے دستیاب ہے۔ اختیارات میں بائنری فولڈر، عارضی فائلوں کا فولڈر اور ورکنگ ڈائریکٹری شامل ہیں۔ مخلوط 32-bit اور 64-bit تعیناتیوں کے لیے، بائنری فولڈر کے اندر الگ x64 اور x86 ذیلی فولڈرز آرکیٹیکچر کے مطابق بائنریز رکھ سکتے ہیں؛ بصورت دیگر لائبریری براہ راست بائنری فولڈر میں دیکھتی ہے۔ پروجیکٹ نوٹ کرتا ہے کہ پرانے ffmpeg ورژن لائبریری کے ہر ظاہر کردہ آرگیومنٹ کو سپورٹ نہیں کر سکتے، اور CI ffmpeg 8.1 کے خلاف ٹیسٹ کرتا ہے۔ یہ MIT لائسنس کے تحت جاری کیا گیا ہے۔