هناك مهمة: قم بتغيير الفيديو "أثناء التنقل" أثناء التشغيل - قم بتبديل الأجزاء اليمنى واليسرى. لا تعكس ، أي التغيير ، أي قص الصورة إلى جزأين وقم بتبديلها. يمكنك بالطبع القيام بذلك باستخدام خادم إطارات مثل
AviSynth ، لكنه لم يعد "سريعًا" بعد الآن - تحتاج إلى كتابة برنامج نصي لكل ملف فيديو. أريد أن أفعل ذلك بسرعة ودون اجهاد.
على التين؟ لجعل
دورة المحاضرة حول التعلم الآلي من ياندكس أكثر ملاءمة للعرض. يشير المحاضر إلى نقاط العرض التقديمي مباشرة ، وعليك أن تقفز باستمرار عبر الشاشة لفهم ما يدور حوله:

الحل
نستخدم أداة التظليل المتوفرة في
Media Player Classic . في المجموعة القياسية ، توجد عدة تظليلات جاهزة لتحرير الصور - "Emboss" و "Grayscale" و "16-235 إلى 0-255" وما شابه. نحن لسنا في حاجة إليها ، لذلك نقوم بإنشاء تظليل جديد (برنامج صغير بلغة
HLSL ):
sampler s0 : register(s0); float4 main(float2 tex : TEXCOORD0) : COLOR {
نقوم
بحفظه في المجلد
\ Shaders بمشغل الوسائط (على سبيل المثال ، C: \ Program Files \ MPC-HC \ Shaders) تحت اسم
Shift.hlsl . بعد ذلك ، انتقل إلى إعدادات Media Player Classic (
خيارات / تشغيل / تظليل ) وأضف تظليل Shader الجديد إلى قائمة
تظليل pre-Resize النشطة .
لا تقوم طريقة معالجة الفيديو هذه بتحميل وحدة المعالجة المركزية ، حيث أن كل العمل يتم بواسطة بطاقة الرسومات ، على أي حال ، إذا كان حقيقياً وغير مقلد.
ما هذا يا باريمور؟
هذا هو تظليل بكسل الذي يجب أن يخرج لون نقطة اعتمادا على الإحداثيات التي مرت من خلال المعلمة
تكس . يحتوي المتغير
s0 على النسيج مع الإطار الحالي للفيديو.
يتم حساب الإحداثي الأفقي الجديد
كباقي معامل القسمة 1 لمجموع الإحداثي الحالي
وإزاحة المبادلة . وبالتالي ، نقوم بنقل النقطة إلى اليمين وإعادة ترتيبها على الجانب الأيسر عندما تتجاوز الأبعاد.
أخيرًا ،
يُرجع الأمر
tex2D (s0 ، tex) لون النقطة مع الإحداثيات المطلوبة من الإطار الأصلي.
PS