پلگ انز – او بی ایس اسٹوڈیو 29.1.3 دستاویزات ، پلگ ان گائیڈ | ob

پلگ ان گائیڈ

لینکس
(فلیٹپک)

پلگ ان ماڈیولز کے ذریعہ تقریبا all تمام کسٹم فعالیت شامل کی جاتی ہے ، جو عام طور پر متحرک لائبریریوں یا اسکرپٹ ہیں. گرفتاری اور/یا آؤٹ پٹ آڈیو/ویڈیو کی صلاحیت ، ایک ریکارڈنگ بنانے ، آر ٹی ایم پی اسٹریم میں آؤٹ پٹ ، x264 میں انکوڈ ان تمام چیزوں کی مثالیں ہیں جو پلگ ان ماڈیولز کے ذریعہ انجام دی جاتی ہیں۔.

پلگ ان ذرائع ، نتائج ، انکوڈرز اور خدمات کو نافذ کرسکتے ہیں.

اپنا پہلا پلگ ان لکھنا? ہم آپ کو شروع کرنے کے لئے ایک بنیادی ٹیمپلیٹ پلگ ان فراہم کرتے ہیں.

پلگ ان ماڈیول ہیڈرز

یہ کچھ قابل ذکر ہیڈر ہیں جو عام طور پر پلگ ان کے ذریعہ استعمال ہوتے ہیں:

  • لیببس/OBS-module.H – پلگ ان ماڈیول بنانے کے لئے استعمال ہونے والا پرائمری ہیڈر. اس فائل میں خود بخود درج ذیل فائلیں شامل ہیں:
    • libobs/obs.H – مین لیببس ہیڈر. اس فائل میں خود بخود درج ذیل فائلیں شامل ہیں:
      • لیببس/obs سورس.H – پلگ ان ماڈیولز میں ذرائع کو نافذ کرنے کے لئے استعمال کیا جاتا ہے
      • libobs/obs-آؤٹ پٹ.H – پلگ ان ماڈیولز میں آؤٹ پٹس کو نافذ کرنے کے لئے استعمال کیا جاتا ہے
      • لیببس/او بی ایس انکوڈر.H – پلگ ان ماڈیولز میں انکوڈروں کو نافذ کرنے کے لئے استعمال کیا جاتا ہے
      • لیببس/او بی ایس سروس.H – پلگ ان ماڈیولز میں خدمات کو نافذ کرنے کے لئے استعمال کیا جاتا ہے
      • لیببس/obs-data.H – لیببس اشیاء کی ترتیبات کے انتظام کے لئے استعمال کیا جاتا ہے
      • لیببس/obs-properties.H – لیببس اشیاء کے لئے پراپرٹیز تیار کرنے کے لئے استعمال کیا جاتا ہے
      • لیببس/گرافکس/گرافکس.H – گرافکس رینڈرنگ کے لئے استعمال کیا جاتا ہے

      مشترکہ ڈائرکٹری ڈھانچہ اور cmakelists.txt

      عام طریقے سے ماخذ فائلوں کا اہتمام کیا جاتا ہے پلگ ان ابتداء کے لئے ایک فائل رکھنا ، اور پھر ہر انفرادی شے کے ل specific مخصوص فائلیں جو آپ نافذ کررہے ہیں. مثال کے طور پر ، اگر آپ کو ’میرا پلگ ان‘ نامی پلگ ان بنانا ہے تو ، آپ کے پاس میرا پلگ ان کی طرح کچھ ہوگا.C جہاں پلگ ان کی ابتداء کی جاتی ہے ، میرے سورس.C کسٹم ماخذ کی تعریف کے لئے ، میرے آؤٹ پٹ.C کسٹم آؤٹ پٹ وغیرہ کی تعریف کے لئے C. (یہ کورس کا کوئی قاعدہ نہیں ہے)

      یہ مقامی پلگ ان ماڈیول کے لئے مشترکہ ڈائرکٹری ڈھانچے کی ایک مثال ہے:

      میرا-رابطہ بحال کرو/ڈیٹا/مقام/en-ہم.ini میرا-رابطہ بحال کرو/cmakelists.TXT میرا-رابطہ بحال کرو/میرا-رابطہ بحال کرو.c میرا-رابطہ بحال کرو/میرا-ذریعہ.c میرا-رابطہ بحال کرو/میرا-آؤٹ پٹ.c میرا-رابطہ بحال کرو/میرا-انکوڈر.c میرا-رابطہ بحال کرو/میرا-خدمت.c 

      یہ ایک عام cmakelists کی مثال ہوگی.ان فائلوں سے وابستہ TXT فائل:

      # میرا پلگ ان/کیمیکلسٹ.TXT پروجیکٹ (میرا پلگین) سیٹ (میرے-پلگین_ ذرائع میرا پلگ ان.c میرا ذریعہ.C میرا آؤٹ پٹ.C میرا انکوڈر.c میری خدمت.c) add_library (my-plugin ماڈیول $) ٹارگٹ_لنک_لیبریریز (میرے پلگین libobs) انسٹال_وبس_پلیگین_ ویتھ_ڈیٹا (میرا پلگ ان ڈیٹا)

      آبائی پلگ ان کی ابتدا

      مقامی پلگ ان ماڈیول بنانے کے ل you ، آپ کو لیببس/او بی ایس-ماڈل کو شامل کرنے کی ضرورت ہوگی.H ہیڈر ، obs_declare_module () میکرو کا استعمال کریں ، پھر فنکشن obs_module_load () کی ایک تعریف بنائیں () . آپ کے obs_module_load () فنکشن میں ، پھر آپ اپنے کسٹم ذرائع ، آؤٹ پٹ ، انکوڈرز ، یا خدمات میں سے کسی کو رجسٹر کریں. مزید معلومات کے لئے ماڈیول API حوالہ دیکھیں.

      مندرجہ ذیل میرے پلگین کی ایک مثال ہے.سی ، جو ہر قسم کے ایک شے کو رجسٹر کرے گا:

      /* میرا پلگین.c */ #شامل / * عام افعال (مطلوبہ) کی وضاحت کرتا ہے */ obs_declare_module() / * عام INI پر مبنی مقام (اختیاری) پر عمل درآمد */ obs_module_use_default_locale، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئے"میرا پلگ ان", "en-us"جیز بیرونی ڈھانچہ obs_source_info my_source؛ /* میرے سورس میں بیان کردہ.c */ بیرونی ڈھانچہ obs_output_info my_output؛ /* میرے آؤٹ پٹ میں بیان کردہ.c */ بیرونی ڈھانچہ obs_encoder_info my_encoder؛ /* میرے انکوڈر میں بیان کردہ.c */ بیرونی ڈھانچہ obs_service_info my_service؛ /* میری خدمت میں بیان کردہ.c */ بول obs_module_load، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےباطلجیز  obs_register_source، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئے& & &my_source) ؛ obs_register_output، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئے& & &my_output) ؛ obs_register_encoder، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئے& & &my_encoder) ؛ obs_register_service، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئے& & &my_service) ؛ واپس سچ ہے؛ > 

      ذرائع

      ذرائع کو ندی پر ویڈیو اور/یا آڈیو پیش کرنے کے لئے استعمال کیا جاتا ہے. چیزیں جیسے ڈسپلے/گیمز/آڈیو کی گرفت کرنا ، ویڈیو بجانا ، تصویر دکھانا ، یا آڈیو بجانا جیسے. آڈیو اور ویڈیو فلٹرز کے ساتھ ساتھ ٹرانزیشن کو بھی نافذ کرنے کے لئے ذرائع کا استعمال کیا جاسکتا ہے. لیببس/obs سورس.H فائل ذرائع کو نافذ کرنے کے لئے سرشار ہیڈر ہے. مزید معلومات کے لئے ماخذ API حوالہ (obs_source_t) دیکھیں.

      مثال کے طور پر ، کسی ماخذ آبجیکٹ کو نافذ کرنے کے ل you ، آپ کو ایک obs_source_info ڈھانچے کی وضاحت کرنے کی ضرورت ہے اور اسے اپنے ماخذ سے متعلق معلومات اور کال بیکس سے بھرنے کی ضرورت ہے:

      /* میرا ذریعہ.c */ کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن ڈھانچہ obs_source_info my_source  .ID = "my_source", .قسم = obs_source_type_input, .آؤٹ پٹ_فلاگس = obs_source_video, .get_name = my_source_name, .بنانا = my_source_create, .تباہ کریں = my_source_destroy, .اپ ڈیٹ = my_source_update, .ویڈیو_رینڈر = my_source_render, .get_width = my_source_width, .get_height = my_source_height > ؛ 

      پھر ، میرے پلگین میں.C ، آپ Libobs کے ساتھ ماخذ کو رجسٹر کرنے کے لئے obs_register_source () کو obs_module_load () میں کال کریں گے.

      /* میرا پلگین.c */ کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن بیرونی ڈھانچہ obs_source_info my_source؛ /* میرے سورس میں بیان کردہ.c */ بول obs_module_load، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےباطلجیز  obs_register_source، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئے& & &my_source) ؛ کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن واپس سچ ہے؛ > 

      ذرائع کی کچھ آسان مثالیں:

      • ہم وقت ساز ویڈیو ماخذ: تصویری ماخذ
      • غیر متزلزل ویڈیو ماخذ: بے ترتیب ساخت ٹیسٹ کا ماخذ
      • آڈیو ماخذ: سائن ویو ٹیسٹ ماخذ
      • ویڈیو فلٹر: ٹیسٹ ویڈیو فلٹر
      • آڈیو فلٹر: حاصل آڈیو فلٹر

      آؤٹ پٹ 

      آؤٹ پٹس فی الحال رینڈرنگ آڈیو/ویڈیو کو آؤٹ پٹ کرنے کی اہلیت کی اجازت دیتے ہیں. اسٹریمنگ اور ریکارڈنگ آؤٹ پٹ کی دو عام مثالیں ہیں ، لیکن صرف آؤٹ پٹ کی قسم نہیں. آؤٹ پٹ خام ڈیٹا وصول کرسکتے ہیں یا انکوڈڈ ڈیٹا وصول کرسکتے ہیں. لیببس/obs-otupt.H فائل آؤٹ پٹس کو نافذ کرنے کے لئے سرشار ہیڈر ہے. مزید معلومات کے لئے آؤٹ پٹ API حوالہ (obs_output_t) دیکھیں.

      مثال کے طور پر ، کسی آؤٹ پٹ آبجیکٹ کو نافذ کرنے کے ل you ، آپ کو ایک obs_output_info ڈھانچے کی وضاحت کرنے کی ضرورت ہے اور اسے اپنے آؤٹ پٹ سے متعلق معلومات اور کال بیکس سے بھرنے کی ضرورت ہے:

      /* میرا آؤٹ پٹ.c */ کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن ڈھانچہ obs_output_info my_output  .ID = "my_output", .جھنڈے = obs_output_av | obs_output_encoded, .get_name = my_output_name, .بنانا = my_output_create, .تباہ کریں = my_output_destroy, .شروع کریں = my_output_start, .بند کرو = my_output_stop, .انکوڈڈ_پیکیٹ = my_output_data, .get_total_bytes = my_output_total_bytes, .انکوڈڈ_ویڈیو_کوڈیکس = "H264", .انکوڈڈ_اوڈیو_کوڈیکس = "اے اے سی" > ؛ 

      پھر ، میرے پلگین میں.C ، آپ libobs کے ساتھ آؤٹ پٹ کو رجسٹر کرنے کے لئے obs_register_output () کو obs_module_load () میں کال کریں گے.

      /* میرا پلگین.c */ کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن بیرونی ڈھانچہ obs_output_info my_output؛ /* میرے آؤٹ پٹ میں بیان کردہ.c */ بول obs_module_load، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےباطلجیز  obs_register_output، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئے& & &my_output) ؛ کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن واپس سچ ہے؛ > 

      نتائج کی کچھ مثالیں:

      • انکوڈڈ ویڈیو/آڈیو آؤٹ پٹس:
        • FLV آؤٹ پٹ
        • FFMPEG MUXER آؤٹ پٹ
        • RTMP اسٹریم آؤٹ پٹ
        • FFMPEG آؤٹ پٹ

        انکوڈرس 

        انکوڈرز ویڈیو/آڈیو انکوڈرز کے obs مخصوص نفاذ ہیں ، جو انکوڈرز کو استعمال کرنے والے نتائج کے ساتھ استعمال ہوتے ہیں۔. x264 ، NVENC ، کوئیک سنک انکوڈر کے نفاذ کی مثالیں ہیں. لیبوبس/او بی ایس انکوڈر.ایچ فائل انکوڈرز کو نافذ کرنے کے لئے سرشار ہیڈر ہے. مزید معلومات کے لئے انکوڈر API حوالہ (obs_encoder_t) دیکھیں.

        مثال کے طور پر ، کسی انکوڈر آبجیکٹ کو نافذ کرنے کے ل you ، آپ کو ایک obs_encoder_info ڈھانچے کی وضاحت کرنے کی ضرورت ہے اور اسے اپنے انکوڈر سے متعلق معلومات اور کال بیکس سے بھرنے کی ضرورت ہے:

        /* میرا انکوڈر.c */ کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن ڈھانچہ obs_encoder_info my_encoder_encoder =  .ID = "my_encoder", .قسم = obs_encoder_video, .کوڈیک = "H264", .get_name = my_encoder_name, .بنانا = my_encoder_create, .تباہ کریں = my_encoder_destroy, .انکوڈ = my_encoder_encode, .اپ ڈیٹ = my_encoder_update, .get_extra_data = my_encoder_extra_data, .get_sei_data = my_encoder_sei, .get_video_info = my_encoder_video_info > ؛ 

        پھر ، میرے پلگین میں.C ، آپ Libobs کے ساتھ انکوڈر کو رجسٹر کرنے کے لئے Obs_register_encoder () کو Obs_module_load () میں فون کریں گے.

        /* میرا پلگین.c */ کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن بیرونی ڈھانچہ obs_encoder_info my_encoder؛ /* میرے انکوڈر میں بیان کردہ.c */ بول obs_module_load، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےباطلجیز  obs_register_encoder، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئے& & &my_encoder) ؛ کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن واپس سچ ہے؛ > 

        اہم نوٹ: انکوڈر کی ترتیبات میں فی الحال کچھ متوقع مشترکہ ترتیب والی اقدار ہیں جن میں نامنگ کا ایک مخصوص کنونشن ہونا چاہئے۔

        • “بٹریٹ” – اس قدر کو ویڈیو اور آڈیو انکوڈروں دونوں کے لئے استعمال کیا جانا چاہئے: بٹریٹ ، کلوبیٹس میں.
        • “ریٹ_کنٹرول” – یہ ایک ایسی ترتیب ہے جو ویڈیو انکوڈروں کے لئے استعمال ہوتی ہے. عام طور پر توقع کی جاتی ہے کہ کم از کم “سی بی آر” ریٹ پر قابو پائے گا. دوسرے عام شرح کے کنٹرول “وی بی آر” ، “سی کیو پی” ہیں.
        • “keyint_sec” – ویڈیو انکوڈرز کے ل key ، سیکنڈوں میں ، یا قریب ترین ممکنہ تخمینہ میں ، کی فریم وقفہ کی قیمت کا تعین کرتا ہے. (مصنف کا نوٹ: یہ فریموں میں “کلیدی” ہونا چاہئے تھا.جیز

        انکوڈروں کی مثالیں:

        • ویڈیو انکوڈرز:
          • x264 انکوڈر
          • FFMPEG NVENC انکوڈر
          • کوئیکسنک انکوڈر
          • FFMPEG AAC/OPUS انکوڈر

          خدمات 

          خدمات اسٹریمنگ خدمات کے کسٹم نفاذ ہیں ، جو آؤٹ پٹ کے ساتھ استعمال ہوتے ہیں جو اسٹریم ہیں. مثال کے طور پر ، آپ کو ٹویونگ ٹو ٹو ٹویونگ کے لئے کسٹم پر عمل درآمد ہوسکتا ہے ، اور یوٹیوب کے لئے دوسرا ان کے APIs کو استعمال کرنے کی اہلیت کی اجازت دیتا ہے جیسے آر ٹی ایم پی سرورز حاصل کریں یا چینل کو کنٹرول کریں۔. لیبوبس/او بی ایس سروس.H فائل خدمات کو نافذ کرنے کے لئے سرشار ہیڈر ہے. مزید معلومات کے لئے سروس API حوالہ (obs_service_t) دیکھیں.

          (مصنف کا نوٹ: سروس API اس تحریر کے مطابق نامکمل ہے)

          مثال کے طور پر ، کسی سروس آبجیکٹ کو نافذ کرنے کے ل you ، آپ کو ایک OBS_SERVICE_INFO ڈھانچے کی وضاحت کرنے کی ضرورت ہے اور اسے اپنی خدمت سے متعلق معلومات اور کال بیکس سے بھرنے کی ضرورت ہے۔

          /* میری خدمت.c */ کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن ڈھانچہ obs_service_info my_service_service =  .ID = "my_service", .get_name = my_service_name, .بنانا = my_service_create, .تباہ کریں = my_service_destroy, .انکوڈ = my_service_encode, .اپ ڈیٹ = my_service_update, .get_url = my_service_url, .get_key = my_service_key > ؛ 

          پھر ، میرے پلگین میں.سی ، آپ libobs کے ساتھ خدمت کو رجسٹر کرنے کے لئے obs_register_service () کو obs_module_load () میں فون کریں گے.

          /* میرا پلگین.c */ کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن بیرونی ڈھانچہ obs_service_info my_service؛ /* میری خدمت میں بیان کردہ.c */ بول obs_module_load، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےباطلجیز  obs_register_service، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئے& & &my_service) ؛ کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن واپس سچ ہے؛ > 

          صرف دو موجودہ خدمات کی اشیاء پلگ ان/آر ٹی ایم پی-سروسز میں “کامن آر ٹی ایم پی سروسز” اور “کسٹم آر ٹی ایم پی سروس” اشیاء ہیں۔

          ترتیبات 

          ترتیبات (دیکھیں لیببس/obs-data.H) عام طور پر لیببس اشیاء سے وابستہ ترتیبات کے اعداد و شمار کو حاصل کرنے یا مرتب کرنے کے لئے استعمال کیا جاتا ہے ، اور پھر JSON متن کے ذریعہ محفوظ اور لوڈ کیا جاسکتا ہے۔. مزید معلومات کے لئے ڈیٹا کی ترتیبات API حوالہ (obs_data_t) دیکھیں.

          obs_data_t کیا JSON آبجیکٹ کے برابر ہے ، جہاں یہ ذیلی آبجیکٹوں کی تار ٹیبل ہے ، اور obs_data_array_t اسی طرح کی ایک صف کو ذخیرہ کرنے کے لئے استعمال کیا جاتا ہے obs_data_t آبجیکٹ ، JSON صفوں کی طرح (اگرچہ بالکل ایک جیسی نہیں ہے).

          ایک بنانے کے لئے obs_data_t یا obs_data_array_t آبجیکٹ ، آپ obs_data_create () یا obs_data_array_create () افعال کو کال کریں گے. obs_data_t اور obs_data_array_t آبجیکٹ کا حوالہ شمار کیا جاتا ہے ، لہذا جب آپ آبجیکٹ کے ساتھ ختم ہوجاتے ہیں تو ، ان حوالوں کو جاری کرنے کے لئے obs_data_release () یا obs_data_array_release () پر کال کریں. کسی بھی وقت an obs_data_t یا obs_data_array_t اعتراض کسی فنکشن کے ذریعہ واپس کیا جاتا ہے ، ان کے حوالوں میں اضافہ ہوتا ہے ، لہذا آپ کو ہر بار ان حوالوں کو جاری کرنا ہوگا.

          ایک کے لئے اقدار طے کرنے کے لئے obs_data_t اعتراض ، آپ مندرجہ ذیل میں سے ایک افعال استعمال کریں گے:

          / * سیٹ افعال */ برآمد باطل obs_data_set_string، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام, کونس چار <ویل) ؛ برآمد باطل obs_data_set_int، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام, لمبا لمبا ویل) ؛ برآمد باطل obs_data_set_double، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام, دگنا ویل) ؛ برآمد باطل obs_data_set_bool، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام, بول ویل) ؛ برآمد باطل obs_data_set_obj، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام, obs_data_t <اعتراض) ؛ برآمد باطل obs_data_set_array، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام, obs_data_array_t <سرنی) ؛ 

          اسی طرح ، ایک سے قدر حاصل کرنے کے لئے obs_data_t اعتراض ، آپ مندرجہ ذیل میں سے ایک افعال استعمال کریں گے:

          / * افعال حاصل کریں */ برآمد کونس چار <obs_data_get_string، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام) ؛ برآمد لمبا لمبا obs_data_get_int، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام) ؛ برآمد دگنا obs_data_get_double، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام) ؛ برآمد بول obs_data_get_bool، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام) ؛ برآمد obs_data_t <obs_data_get_obj، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام) ؛ برآمد obs_data_array_t <obs_data_get_array، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام) ؛ 

          عام JSON ڈیٹا آبجیکٹ کے برعکس ، obs_data_t آبجیکٹ پہلے سے طے شدہ اقدار بھی مرتب کرسکتا ہے. اس سے یہ کنٹرول کرنے کی اہلیت کی اجازت ملتی ہے کہ اگر کسی میں کسی خاص تار کو کوئی قیمت تفویض نہیں کی گئی ہے تو کیا واپس کیا گیا ہے obs_data_t اعتراض جب اس ڈیٹا کو JSON سٹرنگ یا JSON فائل سے بھرا جاتا ہے. ہر لیببس آبجیکٹ میں بھی ایک ہوتا ہے get_defaults کال بیک جو تخلیق پر آبجیکٹ کے لئے پہلے سے طے شدہ ترتیبات ترتیب دینے کی اجازت دیتا ہے.

          یہ افعال پہلے سے طے شدہ اقدار کو کنٹرول کرتے ہیں۔

          /* ڈیفالٹ ویلیو افعال. */ برآمد باطل obs_data_set_default_string، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام, کونس چار <ویل) ؛ برآمد باطل obs_data_set_default_int، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام, لمبا لمبا ویل) ؛ برآمد باطل obs_data_set_default_double، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام, دگنا ویل) ؛ برآمد باطل obs_data_set_default_bool، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام, بول ویل) ؛ برآمد باطل obs_data_set_default_obj، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_data_t <ڈیٹا, کونس چار <نام, obs_data_t <اعتراض) ؛ 

          پراپرٹیز 

          پراپرٹیز (دیکھیں لیببس/او بی ایس پروپرٹی.H) لیبوبس آبجیکٹ (اگر مطلوبہ) کی ترتیبات میں ترمیم کرنے کے لئے خود بخود صارف انٹرفیس تیار کرنے کے لئے استعمال کیا جاتا ہے (اگر مطلوب ہو). ہر لیببس آبجیکٹ میں ایک ہوتا ہے get_properties کال بیک جو پراپرٹیز پیدا کرنے کے لئے استعمال ہوتا ہے. پراپرٹیز API مخصوص خصوصیات کی وضاحت کرتی ہے جو آبجیکٹ کی ترتیبات سے منسلک ہوتی ہیں ، اور سامنے کے آخر میں ان پراپرٹیز کو ویجٹ تیار کرنے کے لئے استعمال کیا جاتا ہے تاکہ صارف کو ترتیبات میں ترمیم کرنے کی اجازت دی جاسکے۔. مثال کے طور پر ، اگر آپ کے پاس بولین کی ترتیب ہوتی ہے تو ، آپ صارف کو اس ترتیب کو تبدیل کرنے کے قابل ہونے کے لئے OBS_Properties_add_bool () استعمال کریں گے۔. مزید معلومات کے لئے پراپرٹیز API حوالہ (obs_properties_t) دیکھیں.

          اس کی ایک مثال:

          جامد obs_properties_t <my_source_properties، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےباطل <ڈیٹاجیز  obs_properties_t <ppts = obs_properties_create() ؛ obs_properties_add_bool، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےppts, "my_bool", obs_module_text، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئے"مائوبول")) ؛ unused_parameter، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےڈیٹا) ؛ واپس ppts؛ > کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن ڈھانچہ obs_source_info my_source  .get_properties = my_source_properties, کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن > ؛ 

          ڈیٹا اگر آبجیکٹ موجود ہے تو پیرامیٹر آبجیکٹ کا ڈیٹا ہے. عام طور پر یہ غیر استعمال شدہ ہے اور اگر ممکن ہو تو شاید استعمال نہیں کیا جانا چاہئے. اگر پراپرٹیز کسی شے سے وابستہ بغیر بازیافت کی جائے تو یہ کالعدم ہوسکتا ہے.

          پراپرٹیز میں بھی ترمیم کی جاسکتی ہے اس پر منحصر ہے کہ کون سی ترتیبات دکھائی گئیں ہیں. مثال کے طور پر ، آپ کچھ خاص خصوصیات کو غیر فعال یا پوشیدہ نشان زد کرسکتے ہیں جس پر منحصر ہے کہ کسی خاص ترتیب کو OBS_PROPERTY_SET_MODIFIED_CALLBACT () فنکشن کا استعمال کرنے کے لئے تیار کیا گیا ہے۔.

          مثال کے طور پر ، اگر آپ چاہتے تھے کہ بولین پراپرٹی A کو ٹیکسٹ پراپرٹی کو چھپائے B:

          جامد بول سیٹنگ_ا_موڈائڈ، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےobs_properties_t <ppts, obs_property_t <پی, obs_data_t <ترتیباتجیز  بول فعال = obs_data_get_bool، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےترتیبات, "ترتیب_ا") ؛ پی = obs_properties_get، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےppts, "ترتیب_ب") ؛ obs_property_set_enabled، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےپی, فعال) ؛ /* پراپرٹی ویجٹ کو اپ ڈیٹ کرنے کے لئے سچ کی واپسی ، غلط ورنہ */ واپس سچ ہے؛ > کے بعد کے کے لئے کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا کے آیا ، کے آیا کے ایل کے کے لئے کے یا. ن جامد obs_properties_t <my_source_properties، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےباطل <ڈیٹاجیز  obs_properties_t <ppts = obs_properties_create() ؛ obs_property_t <پی؛ پی = obs_properties_add_bool، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےppts, "ترتیب_ا", obs_module_text، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئے"ترتیب")) ؛ obs_property_set_modified_callback، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےپی, سیٹنگ_ا_موڈائڈ) ؛ obs_properties_add_text، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئےppts, "ترتیب_ب", obs_module_text، کے لئے ، ، ، ، ، ، ، ، ، ، کے لئے ، صدیں ، ، ، ، کے لئے"سیٹنگ بی"جیز, obs_text_default) ؛ واپس ppts؛ > 

          لوکلائزیشن 

          عام طور پر ، او بی ایس اسٹوڈیو کے ساتھ بنڈل ہونے والے زیادہ تر پلگ انز ایک آسان INI-فائل لوکلائزیشن کا طریقہ استعمال کریں گے ، جہاں ہر فائل ایک مختلف زبان ہے. اس طریقہ کار کو استعمال کرتے وقت ، obs_module_use_default_locale () میکرو استعمال کیا جاتا ہے جو پلگ ان کے حصے میں بغیر کسی اضافی کوشش کے لوکل ڈیٹا کو خود بخود لوڈ/تباہ کردے گا۔. پھر obs_module_text () فنکشن (جو خود بخود لیببس/obs-module کے ذریعہ بیرونی کے طور پر اعلان کیا جاتا ہے.H) جب متن کی تلاش کی ضرورت ہو تو استعمال کیا جاتا ہے.

          لوکل کو لوڈ/تباہ کرنے کے لئے استعمال ہونے والے ماڈیول میں دو برآمدات ہیں: obs_module_set_locale () برآمد ، اور obs_module_free_locale () برآمد. موجودہ زبان کو ترتیب دینے کے لئے libobs کے ذریعہ obs_module_set_locale () برآمد کو بلایا جاتا ہے ، اور پھر ماڈیول کی تباہی پر libobs کے ذریعہ obs_module_free_locale () برآمد کو بلایا جاتا ہے۔. اگر آپ اپنے پلگ ان کے لئے کسٹم لوکل نفاذ کو نافذ کرنا چاہتے ہیں تو ، آپ ان برآمدات کی وضاحت کے ساتھ ساتھ OBS_MODULE_TEXT () کے ساتھ ساتھ OBS_MODULE_USE_USE_DEFAULT_LOCALE () میکرو پر انحصار کرنے کے بجائے بیرونی کی وضاحت کرنا چاہتے ہیں۔.

          © کاپی رائٹ 2017-2023 ، لین بیلی.

          پلگ ان گائیڈ

          او بی ایس اسٹوڈیو متعدد پلگ ان کی حمایت کرتا ہے جو نئے قسم کے ذرائع ، فلٹرز اور خصوصیات مہیا کرتے ہیں. کچھ پلگ انز او بی ایس اسٹوڈیو کو کچھ قسم کے ہارڈ ویئر کے ساتھ بات چیت کرنے کی بھی اجازت دیتے ہیں ، جیسے ایلگٹو اسٹریم ڈیک.

          کچھ پلگ انز کو فلاتھب کے توسط سے لینکس صارفین کے لئے بھی دستیاب کیا جاتا ہے.

          مطابقت

          زیادہ تر پلگ ان تمام پلیٹ فارمز پر قابل استعمال ہونے کے لئے تیار کیے گئے ہیں جہاں او بی ایس اسٹوڈیو دستیاب ہے. تاہم ، کچھ ایسے معاملات ہیں جہاں پلگ ان آپ کے OBS اسٹوڈیو کی کاپی کے ساتھ مطابقت نہیں رکھتے ہیں۔

          • پلگ ان صرف ایک پلیٹ فارم پر دستیاب ہے (i.ای. ونڈوز ، میکوس نہیں)
          • پلگ ان ایک ہی فن تعمیر کے لئے دستیاب نہیں ہے (i.. x86_64 ، ARM64 نہیں)
          • پلگ ان کو OBS اسٹوڈیو کے ورژن کے لئے اپ ڈیٹ نہیں کیا گیا ہے جسے آپ استعمال کررہے ہیں

          یہ دیکھنے کے لئے کہ OBS اسٹوڈیو 28 پر کون سے پلیٹ فارم کے لئے پلگ ان دستیاب ہیں.0 ، OBS اسٹوڈیو 28 پلگ ان مطابقت کی فہرست دیکھیں.

          پلگ ان انسٹال کریں یا ہٹا دیں

          او بی ایس اسٹوڈیو کے بہت سے مشہور پلگ ان انسٹالرز کے ساتھ آتے ہیں. عام طور پر ، وہ نیچے دیئے گئے مقامات پر پلگ ان انسٹال کرتے ہیں.

          اگر آپ کو دستی طور پر پلگ ان انسٹال کرنے کی ضرورت ہے تو ، متعلقہ فائلوں کو ان فولڈروں میں جانے کی ضرورت ہے. براہ کرم پہلے پلگ ان کی دستاویزات چیک کریں.

          ونڈوز (تمام صارفین)

          C: \ پروگرام فائلیں \ obs-studio \ obs-plugins \ 64bit

          ونڈوز
          (میراثی 32 بٹ پلگ ان ob obs اسٹوڈیو 27.2.4 اور صرف پہلے)

          C: \ پروگرام فائلیں \ obs-studio \ obs-plugins \ 32bit

          ونڈوز (سنگل صارف)

          ٪ appdata ٪ \ obs-studio \ obs-plugins

          میکوس

          ~/لائبریری/ایپلی کیشن سپورٹ/OBS-STUDIO/پلگ انز

          لینکس

          ~/.تشکیل/OBS-studio/پلگ ان

          لینکس
          (فلیٹپک)

          فلیٹپک کا استعمال کرتے ہوئے پلگ ان انسٹال کریں

          اگر آپ OBS اسٹوڈیو کو کسٹم لوکیشن پر انسٹال کرتے ہیں یا پورٹیبل موڈ استعمال کرتے ہیں تو ، آپ کو انسٹالر کے ٹارگٹ فولڈر کو اپنے کسٹم لوکیشن میں تبدیل کرنے کی ضرورت ہوگی۔ ڈیٹا/پلگ ان فولڈر.

          فہرست کا خانہ