تعليق الفيديو
علّق الفيديو في Potato — صنّف المقاطع الزمنية، وحدّد الإطارات المفتاحية، وتتبّع الأجسام مع التنقل إطارًا بإطار وتصنيف الأحداث على امتداد الخط الزمني.
يدعم Potato تعليق الفيديو عبر التقسيم الزمني، وتصنيف الإطارات، وتحديد الإطارات المفتاحية، وتتبّع الأجسام.
أوضاع التعليق
| الوضع | الوصف | حالة الاستخدام |
|---|---|---|
segment | تحديد نطاقات زمنية | كشف المشاهد، أدوار المتحدثين |
frame | تصنيف الإطارات المفردة | التصنيف على مستوى الإطار |
keyframe | تحديد اللحظات المهمة | كشف اللقطات البارزة |
tracking | تتبّع الأجسام عبر الإطارات | تتبّع الأجسام |
combined | كل الأوضاع في واجهة واحدة | مهام التعليق المركّبة |
الإعداد الأساسي
annotation_schemes:
- name: "video_segments"خيارات الإعداد
| الحقل | النوع | الافتراضي | الوصف |
|---|---|---|---|
name | string | مطلوب | معرّف فريد للتعليق |
description | string | مطلوب | التعليمات المعروضة للمُعلّقين |
annotation_type | string | مطلوب | يجب أن يكون "video_annotation" |
labels | list | مطلوب | التصنيفات المتاحة للتعليق |
mode | string | "segment" | وضع التعليق |
min_segments | integer | 0 | الحد الأدنى للتعليقات المطلوبة |
max_segments | integer | null | الحد الأقصى للتعليقات المسموح بها |
timeline_height | integer | 70 | ارتفاع الخط الزمني بالبكسل |
overview_height | integer | 40 | ارتفاع شريط النظرة العامة بالبكسل |
zoom_enabled | boolean | true | تفعيل تكبير الخط الزمني |
playback_rate_control | boolean | true | عرض محدد سرعة التشغيل |
frame_stepping | boolean | true | تفعيل التنقل إطارًا بإطار |
show_timecode | boolean | true | عرض رقم الإطار والوقت |
video_fps | integer | 30 | معدل إطارات الفيديو المستخدَم في الحسابات |
إعداد التصنيفات
يمكن أن تكون التصنيفات سلاسل نصية بسيطة أو كائنات مفصّلة تحمل ألوانًا واختصارات لوحة مفاتيح:
labels:
- name: "intro"
color: "#4ECDC4"
key_value: "1"
- name: "content"
color: "#3B82F6"
key_value: "2"
- name: "outro"
color: "#8B5CF6"
key_value: "3"أمثلة حسب الوضع
وضع المقاطع (الافتراضي)
حدّد نطاقات زمنية بوقت بداية ونهاية:
annotation_schemes:
- name: "scene_detection"وضع الإطارات
صنّف الإطارات المفردة:
annotation_schemes:
- name: "frame_quality"وضع الإطارات المفتاحية
حدّد اللحظات المهمة:
annotation_schemes:
- name: "highlights"وضع التتبّع
تتبّع الأجسام عبر الإطارات بمربعات إحاطة:
annotation_schemes:
- name: "object_tracking"الوضع المدمج
استخدم عدة أنواع تعليق في واجهة واحدة:
annotation_schemes:
- name: "comprehensive"عرض الفيديو
لتشغيل فيديو بسيط دون تعليق (مثلًا لمرافقة أنواع تعليق أخرى)، استخدم النوع video:
annotation_schemes:
- name: "video_player"الترجمات والتسميات التوضيحية
إذا كان للفيديو تسميات توضيحية، فيمكنك تعليقها بدلًا من الخط الزمني للفيديو أو إلى جانبه. يقرأ Potato صيغ WebVTT وSubRip وTTML/DFXP وSubStation Alpha، وصيغ YouTube json3 وsrv1/srv2/srv3، ويتعرّف على كل منها من محتوى الملف لا من امتداده.
yt-dlp --write-auto-subs --sub-langs en --sub-format vtt --skip-download <URL>{"id": "talk_01", "conversation": {"audio": "media/talk_01.mp3",
"transcript": "captions/talk_01.vtt"}}ملاحظة: التسميات التوضيحية المولّدة آليًّا بلا علامات ترقيم ولا تسميات متحدثين، وحدود مقاطعها تقع حيث امتلأت نافذة التسمية لا حيث انتهت الجملة. لا تبنِ عليها مخططًا على مستوى الجملة. انظر تعليق ترجمات YouTube لمعرفة البديل.
قائمة الصيغ الكاملة موجودة في صيغ النصوص التفريغية.
اختصارات لوحة المفاتيح
| المفتاح | الإجراء |
|---|---|
Space | تشغيل/إيقاف مؤقت |
, / . | الإطار السابق/التالي |
[ | تحديد بداية المقطع |
] | تحديد نهاية المقطع |
Enter | إنشاء مقطع |
K | تحديد إطار مفتاحي |
C | تصنيف الإطار الحالي |
Delete | إزالة التعليق المحدد |
1-9 | اختيار التصنيف |
+ / - | تكبير/تصغير |
صيغة البيانات
بيانات الإدخال
يجب أن يتضمن ملف بياناتك مسارات الفيديو أو عناوين URL:
[
{
"id": "video_1",
"video_url": "https://example.com/videos/sample1.mp4",
"description": "Meeting recording - identify speakers"
},
{
"id": "video_2",
"video_url": "/data/videos/sample2.mp4",
"description": "Activity video - label actions"
}
]صيغة المخرجات
تختلف المخرجات باختلاف الوضع:
وضع المقاطع:
{
"id": "video_1",
"annotations": {
"scene_detection": [
{
"start": 0.0,
"end": 5.2,
"start_frame": 0,
"end_frame": 156,
"label": "indoor"
}
]
}
}وضع الإطارات:
{
"id": "video_1",
"annotations": {
"frame_quality": [
{
"frame": 120,
"time": 4.0,
"label": "good"
}
]
}
}وضع الإطارات المفتاحية:
{
"id": "video_1",
"annotations": {
"highlights": [
{
"frame": 450,
"time": 15.0,
"label": "goal",
"note": "First goal of the match"
}
]
}
}وضع التتبّع:
{
"id": "video_1",
"annotations": {
"object_tracking": [
{
"id": "track_1",
"label": "ball",
"frames": [
{"frame": 0, "bbox": {"x": 100, "y": 200, "w": 30, "h": 30}},
{"frame": 1, "bbox": {"x": 105, "y": 198, "w": 30, "h": 30}}
]
}
]
}
}صيغ الفيديو المدعومة
- MP4 (موصى به)
- WebM
- MOV
- OGG
تتبّع أجسام الفيديو مع الاستيفاء بين الإطارات المفتاحية
جديد في الإصدار 2.2.0
يدعم وضع التتبّع الآن الاستيفاء بين الإطارات المفتاحية، فيتيح للمُعلّقين تحديد مواضع الأجسام عند إطارات مفتاحية ويستوفي الإطارات الوسيطة تلقائيًّا. هذا يسرّع مهام تتبّع الأجسام بدرجة كبيرة.
annotation_schemes:
- name: "tracking"سير العمل
- انتقل إلى إطار مفتاحي وارسم مربع إحاطة حول الجسم
- تقدّم عدة إطارات وأعد وضع مربع الإحاطة
- يستوفي النظام تلقائيًّا المواضع للإطارات الوسيطة
- راجع المواضع المستوفاة وعدّلها عند الحاجة
مجموعة أوضاع التعليق الصالحة كاملةً هي: segment وframe وkeyframe وtracking وcombined.
ملاحظات تقنية
- يستخدم Peaks.js لعرض الخط الزمني
- عناصر فيديو HTML5 قياسية (بلا اعتماديات خادم إضافية)
- يدعم الخط الزمني السحب للتحديد لإنشاء المقاطع
أفضل الممارسات
- استخدم مقاطع فيديو مضغوطة - الملفات الكبيرة تبطئ التحميل
- اضبط معدل الإطارات المناسب - طابِق
video_fpsمع معدل إطارات الفيديو الفعلي - فعّل التنقل إطارًا بإطار - ضروري للتعليق الدقيق على مستوى الإطار
- استخدم التحكم في سرعة التشغيل - الحركة البطيئة تساعد في العمل التفصيلي
- قدّم تعريفات واضحة للمقاطع - حدّد ما الذي يشكّل حدود المقطع
- استخدم ألوانًا متمايزة - اجعل التصنيفات قابلة للتمييز بصريًّا
- راعِ ارتفاع الخط الزمني - زِده لمهام التقسيم المركّبة