يعد برنامج Python النصي أداة متعددة الاستخدامات لاستخراج لقطات شاشة عالية الجودة من مقاطع فيديو YouTube أو ملفات الفيديو المحلية أو أي مصدر فيديو آخر يمكنك التفكير فيه! إنها مفيدة بشكل خاص لإعداد مجموعات البيانات لمشاريع التعلم الآلي، مثل تدريب Loras أو نقاط التفتيش، أو لمجرد الحصول على هذا الإطار المثالي من فيلمك المفضل.
requirements.txt
استنساخ هذا المستودع:
git clone https://github.com/EnragedAntelope/youtube-screenshot-extractor.git
cd youtube-screenshot-extractor
تثبيت التبعيات المطلوبة:
pip install -r requirements.txt
تثبيت FFmpeg (مطلوب لاستخراج الإطار الرئيسي وبعض المرشحات):
(اختياري) قم بتثبيت PyCUDA لتسريع GPU:
pip install pycuda>=2022.1
ملحوظة: يتطلب PyCUDA تثبيت CUDA على نظامك. للحصول على تعليمات التثبيت، راجع وثائق PyCUDA.
بناء الجملة الأساسي:
python youtube-screenshot-script.py [SOURCE] [OPTIONS]
حيث يمكن أن يكون [SOURCE]
إما عنوان URL على YouTube أو مسارًا إلى ملف فيديو محلي.
ملاحظة: إذا كنت تخطط لاستخدام تسريع GPU (-خيار use-gpu)، فتأكد من تثبيت PyCUDA.
قم باستخراج الإطارات كل 5 ثوانٍ من مقطع فيديو على YouTube واحفظها في مجلد مخصص:
python youtube-screenshot-script.py https://www.youtube.com/watch?v=dQw4w9WgXcQ --output my_awesome_screenshots
الأمر بهذه السهولة! الآن دعنا نتعمق في جميع الخيارات القابلة للتكوين.
--method {interval,all,keyframes,scene}
: طريقة استخراج الإطار (الافتراضي: الفاصل الزمني)--interval INTERVAL
: الفاصل الزمني بين الإطارات بالثواني (الافتراضي: 5.0، يُستخدم فقط مع طريقة "الفاصل الزمني")--quality QUALITY
: عتبة الجودة لاختيار الإطار (0-100، الافتراضي: 12.0)--blur BLUR
: عتبة التمويه لاختيار الإطار (الافتراضي: 10.0)--detect-watermarks
: تمكين الكشف الأساسي عن العلامات المائية--watermark-threshold THRESHOLD
: حساسية الكشف عن العلامة المائية (0-1، الافتراضي: 0.8)--max-resolution RESOLUTION
: الحد الأقصى للدقة لتنزيل فيديو YouTube (على سبيل المثال، 720، 1080). تم تجاهله للملفات المحلية.--output OUTPUT
: اسم مجلد الإخراج المخصص--png
: احفظ الإطارات بتنسيق PNG بدلاً من JPG--disable-parallel
: تعطيل المعالجة المتوازية للإطارات--use-gpu
: استخدم تسريع GPU إذا كان متاحًا--fast-scene
: استخدم الوضع السريع لاكتشاف المشهد (نتائج أقل دقة)--resume
: استئناف عملية الاستخراج المتقطعة--thumbnail
: قم بإنشاء مونتاج مصغر للإطارات المستخرجة--verbose
: تمكين التسجيل التفصيلي--dry-run
: أظهر ما سيتم فعله دون المعالجة الفعلية--config CONFIG
: تحميل الإعدادات من ملف التكوين--gradfun
: قم بتطبيق مرشح gradfun لتقليل نطاقات الألوان (أقل عدوانية، ويحافظ على المزيد من التفاصيل)--deblock
: قم بتطبيق مرشح إلغاء الحظر لتقليل آثار الضغط--deband
: قم بتطبيق مرشح debanding لتقليل نطاقات الألوان (أكثر عدوانية وأفضل للنطاقات الشديدة)استخراج الإطارات الرئيسية من ملف فيديو محلي:
python youtube-screenshot-script.py path/to/your/video.mp4 --method keyframes
استخدم اكتشاف المشهد على فيديو YouTube مع مجلد الإخراج المخصص:
python youtube-screenshot-script.py https://www.youtube.com/watch?v=dQw4w9WgXcQ --method scene --output my_scene_shots
قم باستخراج الإطارات كل 10 ثوانٍ مع حد جودة أقل وإخراج PNG:
python youtube-screenshot-script.py https://www.youtube.com/watch?v=dQw4w9WgXcQ --interval 10 --quality 30 --png
استخدم تسريع GPU وقم بإنشاء مونتاج مصغر:
python youtube-screenshot-script.py path/to/your/video.mp4 --use-gpu --thumbnail
قم بتنزيل مقطع فيديو على YouTube بدقة قصوى تبلغ 720 بكسل واستخرج الإطارات:
python youtube-screenshot-script.py https://www.youtube.com/watch?v=dQw4w9WgXcQ --max-resolution 720
استخراج الإطارات باستخدام مرشحات ما بعد المعالجة:
python youtube-screenshot-script.py path/to/your/video.mp4 --gradfun --deblock --deband
وقت المعالجة :
دقة الفيديو :
--max-resolution
للحد من جودة التنزيل إذا لزم الأمر.--max-resolution
.الإخراج : يتم حفظ الإطارات كصور JPG أو PNG في مجلد الإخراج المحدد (أو المجلد الافتراضي المسمى باسم عنوان الفيديو).
أسماء ملفات الإطار : اتبع التنسيق frame_NNNNNN_qXX_bYY[_watermarked].(jpg|png)
حيث:
NNNNNN
: رقم الإطارXX
: نقاط الجودة (0-99، الأعلى هو الأفضل)YY
: درجة التمويه (تشير الأرقام الأعلى إلى درجة ضبابية أقل)_watermarked
: تتم إضافة اللاحقة في حالة اكتشاف علامة مائيةمرشحات ما بعد المعالجة :
--dry-run
لمعاينة عملية الاستخراج دون حفظ الإطارات فعليًا.--resume
في حالة مقاطعة العملية.--max-resolution
للحد من جودة التنزيل من أجل معالجة أسرع والحفاظ على مساحة التخزين.--quality 30 --blur 50
) واضبطها حسب الحاجة.--fast-scene
للحصول على نتائج أسرع لاكتشاف المشهد (لكنها أقل دقة).لم يتم استخراج أي إطارات :
--quality 20 --blur 30
).مشاكل استخراج الإطار الرئيسي :
اكتشاف المشهد بطيء للغاية أو متعطش :
--fast-scene
للحصول على نتائج أسرع ولكن أقل دقة.تسريع GPU لا يعمل :
pip install pycuda
).--use-gpu
.كشف العلامة المائية ينتج نتائج إيجابية كاذبة :
--watermark-threshold 0.9
لاكتشاف أكثر صرامة).--detect-watermarks
.تموت العملية بشكل غير متوقع بالنسبة لمقاطع الفيديو الكبيرة :
--resume
للمتابعة من حيث توقفت.جودة منخفضة أو إخراج ضبابي :
مرشحات ما بعد المعالجة لا تعمل :
هذا المشروع مرخص بموجب ترخيص MIT - راجع ملف الترخيص للحصول على التفاصيل.
المساهمات هي موضع ترحيب! لا تتردد في تقديم طلب السحب.