# מסגרות דוברים

> אתרו איפה הפנים של כל דובר נמצאות לאורך הזמן, בכל מצלמה של עריכה מכמה מצלמות, וקבלו קובץ מסלולי פנים למסגור עם מעקב פנים ברכיב תצוגת דוברים.

Source: https://nodaro.ai/he/docs/nodes/video/speaker-frames

רכיב **מסגרות דוברים** מאתר איפה הפנים של כל דובר נמצאות לאורך הזמן, בכל מצלמה של עריכה. הרכיב שומר את התוצאה בקובץ מסלולי פנים, עם תיבות לכל פנים לפי השעון של כל מצלמה. הפלט **מסלולי פנים** מעביר סיכום של הקובץ הזה. חברו את הפלט לקלט **מסלולי פנים** של רכיב [תצוגת דוברים](https://nodaro.ai/docs/nodes/video/speaker-view#face-tracking), או לחצו שם על **הוספת מעקב פנים**, כדי שחיתוך המסגור של כל דובר יעקוב אחרי הפנים שלו.

- Found in: Video › Cut & Assemble
- API type: `speaker-frames`

רכיב מסגרות דוברים מתומחר לפי בלוקים: בלוק לכל 1,000 פריימים שנדגמו, או חלק מהם. ראו את הסעיף [קרדיטים](#credits).

המסלולים עוקבים אחרי כל פנים, אבל כרגע רכיב מסגרות דוברים לא משייך אותם לדוברים. רכיב [תצוגת דוברים](https://nodaro.ai/docs/nodes/video/speaker-view#a-video-instead-of-an-edit) משתמש בתיבות שציירתם ב**עריכת מסגור…**, או שואל אתכם אילו פנים שייכות למי.

רכיב מסגרות דוברים רץ ב-Nodaro Cloud. בהתקנה באירוח עצמי, [חברו את ההתקנה ל-Nodaro Cloud](https://nodaro.ai/docs/self-hosting/cloud-connect). התקנה מחוברת יוצרת עותקי זיהוי קטנים של המצלמות שהיא דוגמת ושולחת רק אותם, אף פעם לא את הקבצים המקוריים. אודיו המאסטר וכל מצלמה שביטלתם את הסימון שלה לא נשלחים בכלל. כרגע, הרצה מהתקנה מחוברת נדחית עם ההודעה "Speaker Frames is not available on a connected install yet" (רכיב מסגרות דוברים עדיין לא זמין בהתקנה מחוברת).

## מתי להשתמש
- אתם רוצים שהמסגור ברינדור של פודקאסט או ראיון יעקוב אחרי הפנים של כל דובר.
- יש לכם עריכה מכמה מצלמות מרכיב [תוכנית עריכה](https://nodaro.ai/docs/nodes/video/edit-plan) או מרכיב [מחליף מצלמות](https://nodaro.ai/docs/nodes/video/camera-switch), ואתם צריכים לדעת איפה כל אדם נמצא בכל מצלמה.
- אתם רוצים את מיקומי הפנים בסרטון אחד, בלי עריכה.

## התחלה מהירה
### הוספת הרכיב
הקישו Tab על הקנבס ובחרו **וידאו › חיתוך והרכבה › מסגרות דוברים**.

### חיבור העריכה
חברו את הפלט **עריכה עם החלפת מצלמות (EDL)** של רכיב מחליף מצלמות לקלט **רשימת עריכה**. חברו את הפלט **תמלול (עם שמות)** של רכיב מחליף מצלמות לקלט **תמלול**.

### בחירת המצלמות
פתחו את חלונית ההגדרות. תחת **מצלמות למעקב**, בטלו את הסימון של כל מצלמה שלא צריך לעקוב אחריה, למשל מצלמת תקריב שהרינדור מציג בפריים מלא.

Workflow: רכיב תוכנית עריכה כותב את העריכה, רכיב מחליף מצלמות בוחר את המצלמה לכל חיתוך, ורכיב מסגרות דוברים מאתר את הפנים של כל דובר בכל מצלמה שהעריכה מציגה.

- תוכנית עריכה → מחליף מצלמות (רשימת עריכה)
- מחליף מצלמות → מסגרות דוברים (רשימת עריכה)

## קלטים
| קלט | נדרש | מה לחבר |
| --- | --- | --- |
| **רשימת עריכה** | אחד מהקלטים **רשימת עריכה** ו**וידאו** | העריכה, מרכיב [תוכנית עריכה](https://nodaro.ai/docs/nodes/video/edit-plan) או מרכיב [מחליף מצלמות](https://nodaro.ai/docs/nodes/video/camera-switch). חבילת קליפים רצה פעם אחת: כשמחברים את הפלט של רכיב תוכנית עריכה במצב **קטעים**, כל הקליפים מאוחדים להרצה אחת על כל הצילומים שהקליפים שומרים, ואף פעם לא הרצה לכל קליפ. |
| **וידאו** | אחד מהקלטים **רשימת עריכה** ו**וידאו** | סרטון אחד, שנדגם כולו, עד 180 דקות. |
| **תמלול** | לא | הפלט **תמלול (עם שמות)** של רכיב מחליף מצלמות, עם שמות הדוברים שלו. כך השמות על המסלולים ובחלונית ההגדרות הם השמות שהעריכה משתמשת בהם. חברו את אותו תמלול שרכיב מחליף מצלמות מפיק. |

חברו בדיוק אחד מהקלטים **רשימת עריכה** ו**וידאו**. כששניהם מחוברים, ההרצה נדחית לפני כל חיוב.

## פלטים
| פלט | מה הוא מעביר |
| --- | --- |
| **מסלולי פנים** | סיכום של קובץ מסלולי הפנים השמור: הכתובת שלו, גיבוב ה-SHA-256 והגודל שלו, קצב הדגימה, ולכל מצלמה הקטעים שנדגמו בה, חיתוכי הסצנה והמסלולים. לכל מסלול יש מזהה, הדובר כשהוא ידוע ומספר התיבות שלו. התיבות עצמן נמצאות בקובץ השמור. |

בהתקנה מחוברת באירוח עצמי, קובץ מסלולי הפנים מועתק לאחסון של ההתקנה עצמה אחרי ההרצה, והגיבוב שלו נבדק שוב. הפלט מצביע אז על העותק הזה.

## הגדרות
| הגדרה | מה היא עושה |
| --- | --- |
| **מצלמות למעקב** | כל מצלמה שנדגמת בעריכה המחוברת, עם מספר הפריימים שלה. בטלו את הסימון של מצלמה שלא צריך לעקוב אחריה, והיא לא תידגם. מצלמה שביטלתם את הסימון שלה ושכבר לא נמצאת בעריכה לא נלקחת בחשבון כשהרכיב רץ. |

הרכיב דוגם רק את מה שהעריכה שומרת: כל קטע שנשמר, ועוד 2 שניות מכל צד, ב-2 פריימים לשנייה, בכל מצלמת וידאו שהעריכה מציגה. קצב הדגימה קבוע. מצלמה שהצילומים שנשמרו ממנה ארוכים מ-180 דקות נדחית לפני כל חיוב.

### תיקונים לתוויות הדוברים
הרכיב שומר תיקונים לדובר של כל מסלול, לפי מזהה המסלול. תיקון יכול גם להסיר את התווית של מסלול. את התיקונים קובעים ב**עריכת מסגור…** ברכיב [תצוגת דוברים](https://nodaro.ai/docs/nodes/video/speaker-view#face-tracking): העורך מצייר את הפנים שבמעקב מעל כל מצלמה, וכשבוחרים של מי הפנים, התיקון נשמר ברכיב הזה. חלונית ההגדרות, הסיכום על הקנבס ורכיב תצוגת דוברים מחילים את התיקונים. תיקון שומר את התווית שבתמלול עצמו, כך שאחרי ששיניתם את השם של דובר ברכיב מחליף מצלמות, התיקון עובר לשם החדש. הפלט **מסלולי פנים** מעביר את התוצאה כפי שההרצה כתבה אותה, בלי התיקונים. כשהרכיב הזה מזין רכיב תצוגת דוברים שמוזן מסרטון, ולאחד הדוברים של אותו רכיב תצוגת דוברים לא שויכו פנים, חלונית ההגדרות מציעה **איזה פרצוף שייך ל-…?**. האפשרות הזו פותחת את **עריכת מסגור…** באותו רכיב תצוגת דוברים, עם אשף ששואל על פרצוף אחד בכל פעם. הרצה חדשה שומרת את התיקונים של המסלולים שהיא עדיין מוצאת. החלונית מפרטת כל תיקון שהמסלול שלו כבר לא קיים בתוצאה החדשה, כך שתיקון אף פעם לא נמחק בלי הודעה.

## קרדיטים
רכיב מסגרות דוברים מתומחר לפי בלוקים: בלוק לכל 1,000 פריימים שנדגמו, או חלק מהם, ולפחות בלוק אחד בכל הרצה. התעריף זהה לכל סוג של צילומים: HD או 4K, מצלמה אחת או כמה. הסכום הכולל של ההרצה מעוגל כלפי מעלה לקרדיט שלם.

**פריימים שנדגמו** הם הפריימים שההרצה בודקת. בכל מצלמה מסומנת, אלה כל הקטעים שהעריכה שומרת, ועוד 2 שניות מכל צד, ב-2 פריימים לשנייה. קטעים שהשוליים שלהם נוגעים זה בזה מאוחדים, והפריימים מכל המצלמות נספרים יחד. סרטון בלי עריכה נדגם כולו.

| הרצה | פריימים שנדגמו | בלוקים |
| --- | --- | --- |
| פרק של 90 דקות שהודק ל-82 דקות ו-30 שניות, ב-90 קטעים שנשמרו, של 55 שניות כל אחד, במצלמה רחבה אחת | 10,616 | 11 |
| חבילת קליפים של 8 קליפים באורך 56 שניות במצלמה אחת, בהרצה אחת | 960 | 1 |
| סרטון של 14 שניות | 28 | 1 |

- **שריון לפי הספירה, חיוב לפי מה שנדגם.** כשההרצה מתחילה, השרת סופר את הפריימים בעצמו, לפי הקטעים שנשמרו במצלמות המסומנות או לפי האורך הנמדד של הסרטון. השרת משריין את מספר הבלוקים שמתאים לספירה. אחר כך החיוב הוא על הפריימים שההרצה דגמה בפועל, אף פעם לא יותר ממה ששוריין, והשאר משתחרר.
- **חבילת קליפים היא הרצה אחת.** הקטעים של הקליפים שלה באותה מצלמה מאוחדים, כך שעל החבילה משלמים פעם אחת על כל הקטעים, ולא בלוק לכל קליפ.
- **אומדן מחיר דרך ה-API.** הנתיב `GET /v1/credits/model-cost?model=speaker-frames` מחזיר את המחיר של בלוק אחד, שהוא החיוב המינימלי להרצה, ולא את המחיר של הרצה. מכיוון שהסכום הכולל של ההרצה מעוגל פעם אחת, המחיר של 11 בלוקים נמוך מהמחיר הזה כפול 11. לסכום הכולל של הרצה, שלחו את התהליך ל-`POST /v1/credits/estimate-workflow`: נקודת הקצה הזו סופרת את הפריימים כמו האומדן שמתואר למטה. כשמספר הבלוקים כבר ידוע לכם, המזהה `speaker-frames:<N>u` נותן את המחיר המדויק שלו. הנתיב `GET /v1/nodes/speaker-frames` מחזיר את התעריף בשדה `creditRate`. ראו את דף ה-API [רכיבים](https://nodaro.ai/docs/developers/api/nodes).

### מה האומדן מציג לפני ההרצה
המחיר שמופיע ברכיב, בכפתור **הרצה** ובאישור ההרצה הוא אומדן, והוא נוטה כלפי מעלה:

- **כשהעריכה ידועה**, האומדן סופר את הפריימים של העריכה עצמה במצלמות המסומנות. העריכה ידועה כשלרכיב מחליף מצלמות או לרכיב תוכנית עריכה כבר יש תוכנית, והוא לא רץ שוב בהרצה הזו. כשרכיב מחליף מצלמות רץ שוב ורכיב תוכנית עריכה שמזין אותו לא רץ, האומדן מחושב לפי העריכה של התוכנית הזו.
- **כשרכיב תוכנית עריכה עומד ליצור את העריכה** בהרצה הזו, ישירות או דרך רכיב מחליף מצלמות, התמלול שלו חייב להגיע מרכיב תמלול בתהליך. האומדן סופר אז את הפרק כולו, ועוד 2 שניות בכל קצה, ב-2 פריימים לשנייה, בכל מצלמה שהתוכנית קוראת. האומדן סופר לכל היותר 180 דקות לכל מצלמה. הקלטה של אודיו בלבד, כגון קובץ אודיו שהועלה, היא לא מצלמה. האומדן לשעה אחת במצלמה אחת הוא 7,208 פריימים, 8 בלוקים. לשתי מצלמות של שעה עם מיקרופון נפרד, האומדן הוא 14,416 פריימים, 15 בלוקים.
- **עם סרטון במקום עריכה**, האומדן סופר את הסרטון כולו ב-2 פריימים לשנייה, עד 180 דקות. האומדן קורא את האורך של קובץ שהועלה, את האורך המשוער של רינדור, או את האורך שרכיב קיצוץ וידאו, לולאת וידאו או שילוב סרטונים מעביר הלאה.
- **כשהאורך לא ידוע לפני ההרצה**, האומדן סופר 180 דקות בכל מצלמה שההרצה תמסגר, עד 6 מצלמות. זה המצב בסרטון מקישור או מרכיב שעדיין לא רץ, וברכיב תוכנית עריכה שאורך הפרק שלו לא ידוע. סרטון הוא מצלמה אחת: 22 בלוקים.
- **בכל מקרה אחר**, האומדן הוא התקרה: 180 דקות בכל אחת מ-6 מצלמות, כלומר 129,600 פריימים או 130 בלוקים. זה חל כשלרכיב שיוצר את העריכה עדיין אין תוצאה והוא לא רץ בהרצה הזו, או כשאי אפשר לקרוא את העריכה.

בעריכה של עד 6 מצלמות, האומדן אף פעם לא נמוך מהחיוב.

## טיפים
- **הריצו קודם את רכיב מחליף מצלמות** בצילום מכמה מצלמות, וחברו את התמלול עם השמות שלו, כדי שעל המסלולים יופיעו שמות הדוברים שהעריכה משתמשת בהם.
- **בטלו את הסימון של מצלמות שאתם לא צריכים.** מצלמת תקריב שהרינדור מציג בפריים מלא לא צריכה מעקב, ופחות מצלמות פירושן פחות פריימים לדגימה.
- **חתכו את העריכה לפני המעקב.** הרכיב דוגם רק את הצילומים שהעריכה שומרת, כך שעריכה מהודקת יותר נדגמת מהר יותר.

## פתרון בעיות
| הודעה או בעיה | סיבה ופתרון |
| --- | --- |
| ״חברו EDL לקלט **EDL**, או וידאו לקלט **וידאו**״ | לא מחובר שום דבר. חברו עריכה או סרטון. |
| ההרצה נדחית כששני הקלטים מחוברים. | חברו רק אחד מהקלטים **רשימת עריכה** ו**וידאו**. |
| מצלמה נדחית כי היא ארוכה מדי. | הצילומים שנשמרו מהמצלמה ארוכים מ-180 דקות. שמרו פחות צילומים, או בטלו את הסימון של המצלמה הזו. |
| על המסלולים לא מופיעים השמות הנכונים. | חברו את הפלט **תמלול (עם שמות)** של רכיב מחליף מצלמות, ולא את התמלול של רכיב תמלול. |

## דרך ה-API
הנתיב `POST /v1/speaker-frames` מקבל בדיוק אחד מהשדות `edl` ו-`videoUrl`, ואת השדות האופציונליים `transcript` ו-`excludeSourceIds`. השדה `edl` הוא EDL אחד, חבילת קליפים (מערך של EDL) או סט של קליפים, כאובייקטים או כמחרוזות JSON. השדה `excludeSourceIds` מפרט את המצלמות שביטלתם את הסימון שלהן. הקרדיטים משוריינים לפי ספירת הפריימים שהנתיב עושה בעצמו, כפי שמתואר בסעיף [קרדיטים](#credits). השדה `output_data.json` של המשימה שהסתיימה הוא הסיכום של קובץ מסלולי הפנים.

הבקשות האלה נדחות לפני כל חיוב:

| שגיאה | סיבה |
| --- | --- |
| `400 invalid_edl` | הבקשה פגומה, או שהעריכה לא על השעון של ההקלטה. |
| `400 invalid_input` | נשלחו גם `edl` וגם `videoUrl` או אף אחד מהם, או שהשדה `excludeSourceIds` לא מציין אף מצלמה של העריכה. |
| `400 too_long` | מצלמה או סרטון ארוכים מ-180 דקות. |

בהתקנה באירוח עצמי, הנתיב מחזיר `503 nodaro_connection_required` כשאין חיבור ל-Nodaro Cloud, או כש-Nodaro Cloud דוחה את החיבור של ההתקנה. חברו את ההתקנה מחדש מהדף **אינטגרציות**. הנתיב מחזיר `503 speaker_frames_relay_unavailable` כל עוד Nodaro Cloud לא מקבל הרצות מהתקנה מחוברת, או כשאי אפשר להגיע אליו. אם עותק זיהוי שההתקנה יצרה גדול מ-500 MB, הגודל המרבי שאפשר להעביר לענן, המשימה נכשלת ומציינת את המצלמה. שמרו פחות צילומים או בטלו את הסימון של המצלמה הזו.

הנתיב `GET /v1/speaker-frames/capabilities` מחזיר `{ relay, source }`: האם השרת הזה מריץ משימה של רכיב מסגרות דוברים שמועברת מהתקנה מחוברת באירוח עצמי. הערך של `source` הוא `server`, `nodaro.ai`, `nodaro.ai-unreachable`, `nodaro.ai-rejected` או `not-connected`. ראו את דפי ה-API [הרצת רכיב יחיד](https://nodaro.ai/docs/developers/api/nodes) ו[משימות](https://nodaro.ai/docs/developers/api/jobs).

## שאלות נפוצות

### מה עושה רכיב מסגרות דוברים?

רכיב מסגרות דוברים מאתר איפה הפנים של כל דובר נמצאות לאורך הזמן, בכל מצלמה של עריכה. הרכיב שומר את התיבות בקובץ מסלולי פנים, והפלט מסלולי פנים שלו מעביר סיכום של הקובץ הזה, כדי שרכיב תצוגת דוברים ימסגר כל דובר לפי הפנים שלו.

### כמה קרדיטים עולה רכיב מסגרות דוברים?

רכיב מסגרות דוברים מתומחר לפי בלוקים: בלוק לכל 1,000 פריימים שנדגמו, או חלק מהם, ולפחות בלוק אחד בכל הרצה. הרכיב דוגם 2 פריימים לכל שנייה של הצילומים שהוא בודק, כך שקליפ קצר עולה בלוק אחד. הרכיב מציג את המחיר לפני ההרצה, והחיוב הוא על הפריימים שההרצה דגמה.

### האם רכיב מסגרות דוברים מנתח את כל ההקלטה?

לא. כשמחברים EDL, רכיב מסגרות דוברים דוגם רק את הצילומים שהעריכה שומרת, ועוד 2 שניות מכל צד, ב-2 פריימים לשנייה. פרק של 90 דקות שקוצר ל-60 דקות נדגם לאורך כ-60 דקות.

### האם חבילת קליפים מריצה את רכיב מסגרות דוברים פעם אחת לכל קליפ?

לא. כשמחברים את הפלט של רכיב תוכנית עריכה במצב קטעים, כל הקליפים מאוחדים להרצה אחת של רכיב מסגרות דוברים, על כל הצילומים שהקליפים שומרים.

### איזה תמלול כדאי לחבר?

חברו לרכיב מסגרות דוברים את הפלט תמלול (עם שמות) של רכיב מחליף מצלמות, אותו תמלול שרכיב מחליף מצלמות מפיק. כך השמות על המסלולים ובחלונית ההגדרות הם השמות שהעריכה משתמשת בהם.
