פקודות מדיה וקול
החלפת קולות, צריבת כתוביות, שכבות, עיבוד אודיו, תכנון עריכות והידוק פרקי פודקאסט עם הפקודות voice, media, audio ו-edit של ה-CLI של Nodaro.
פקודות המדיה והקול של ה-CLI של Nodaro עובדות ישירות על אודיו, וידאו ותמונות. הקבוצה voice מחליפה קולות ברצועות ומעצבת קולות, הקבוצה media מייבאת, מקצצת, מוסיפה כתוביות ומרכיבה מדיה, הקבוצה audio מעבדת ומתמללת אודיו והקבוצה edit מתכננת ומחילה עריכות לפודקאסטים ולסרטונים ארוכים. כל פקודה מריצה את אותו מנוע כמו הרכיב המקביל בעורך.
כל פקודה שמתחילה משימה מקבלת את --json, את --watch כדי לחכות לתוצאה ואת --poll-interval <ms> כדי לקבוע כל כמה אלפיות שנייה לבדוק את הסטטוס. ראו את הדף פלט וקודי יציאה.
קול
nodaro voice list [--clones] [--json]
nodaro voice changer --voice <id> --audio <url>|--video <url> [--model <id>] [--stability <0..1>] [--similarity <0..1>] [--style <0..1>] [--use-speaker-boost] [--seed <n>] [--remove-background-noise] [--watch] [--poll-interval <ms>] [--json]
nodaro voice recast --audio <url>|--video <url> --voices <v1,v2,...>|--voices-json <json> [--model <id>] [--output video|stems] [--analysis-json <json>|--analysis-file <path>] [--no-preserve-background] [--separation-quality fast|best] [--music-volume-mode match|normalize|manual] [--music-volume <0-200>] [--remove-background-noise] [--voice-fx <preset>] [--voice-fx-mix <0-100>] [--voice-fx-delay <20-2000>] [--voice-fx-decay <0-1>] [--watch] [--poll-interval <ms>] [--json]
nodaro voice analyze --audio <url>|--video <url> [--separation-quality fast|best] [--suggest-title] [--watch] [--poll-interval <ms>] [--json]
nodaro voice export --source <videoUrl> --tracks-json <json>|--tracks-file <path> [--voice-fx <preset>] [--voice-fx-mix <0-100>] [--voice-fx-delay <20-2000>] [--voice-fx-decay <0-1>] [--watch] [--poll-interval <ms>] [--json]
nodaro voice design --text <line> --description <desc> [--model <id>] [--loudness <-1..1>] [--guidance-scale <0-100>] [--seed <n>] [--quality <n>] [--enhance] [--user-prompt <text>] [--watch] [--poll-interval <ms>] [--json]
nodaro voice remix --text <text> --description <desc> [--user-prompt <text>] [--watch] [--poll-interval <ms>] [--json]
nodaro voice dub --audio <url> --target-language <code> [--source-language <code>] [--num-speakers <1-20>] [--disable-voice-cloning] [--drop-background-audio] [--watch] [--poll-interval <ms>] [--json]
nodaro voice clones list [--json]
nodaro voice clones delete <id> [--json]| פקודה | מה היא עושה |
|---|---|
voice list | מציגה את הקולות המוכנים מראש, או את שכפולי הקול שלכם עם --clones. את השמות או את המזהים שלהם מעבירים ב---voice וב---voices. |
voice changer | נותנת קול אחר לרצועת אודיו אחת או לסרטון אחד עם דיבור, בקול יחיד, כמו רכיב משנה קול. הפקודה voice change זהה לה. |
voice recast | מחליפה בבת אחת את הקולות של כל הדוברים בהקלטה, כמו רכיב משנה קול Pro. הפקודה voice pro זהה לה. |
voice analyze | מזהה את הדוברים בלי להחליף קולות, ומדפיסה את הרשימה עם --watch. ב-Nodaro Cloud בלבד. |
voice export | מרנדרת את הסרטון הסופי ממיקס של רצועות. ב-Nodaro Cloud בלבד. |
voice design | מעצבת קול סינתטי חדש מתיאור כתוב, כמו רכיב עיצוב קול. |
voice remix | מקריאה טקסט בקול שתיארתם, בלי שכפול, כמו רכיב רמיקס קול. |
voice dub | מדבבת הקלטה לשפה אחרת ושומרת על הקול של כל דובר, כמו רכיב דיבוב. |
voice clones | מציגה ומוחקת שכפולי קול שנוצרו לפני שהשכפול הוצא משימוש. |
החלפת הקולות של כמה דוברים
הפקודה voice recast רצה ב-Nodaro Cloud. התקנה באירוח עצמי מריצה אותה דרך החיבור ל-Nodaro Cloud שלה.
- הדגל
--voicesממפה קולות לדוברים לפי הסדר שבו Nodaro מזהה אותם. המילהkeepמשאירה לדובר את הקול המקורי שלו, כמו ב---voices Rachel,keep,Aria. - הדגל
--voices-jsonמקבל במקום זאת את המערך הגולמי של ה-SDK: מזהי קולות, אובייקט הגדרות לכל קול אוnullלדובר שנשאר עם הקול המקורי. - הדגל
--output stemsמחזיר רצועה יבשה אחת לכל דובר, למיקס אינטראקטיבי, במקום סרטון גמור. את המיקס מרנדרים עםvoice export. - הדגל
--analysis-fileמשתמש שוב בתוצאה שמורה שלvoice analyze, כך שהדוברים לא מזוהים שוב.
החלפת קולות אינטראקטיבית
בדרך של שלב אחד, הפקודה voice recast מרנדרת סרטון גמור בקריאה אחת. בדרך של שלושה שלבים אפשר לבדוק קודם את הדוברים ולערוך מיקס של התוצאה לפני שמרנדרים אותה:
# 1. Detect the speakers. Save the job's output_data for step 2.
nodaro voice analyze --video https://example.com/panel.mp4 --watch --json > analyze.json
jq .output_data analyze.json > analysis.json
# 2. Recast to dry stems, reusing the analysis (no second detection)
nodaro voice recast --video https://example.com/panel.mp4 --voices Rachel,keep,Aria \
--analysis-file analysis.json --output stems --watch
# 3. Set the level and mute of each track, then render
nodaro voice export --source https://example.com/panel.mp4 --tracks-file mix.json \
--voice-fx hall --voice-fx-mix 25 --watchבשלב 3, כל רצועה ב-mix.json נלקחת מהסטמים של שלב 2, והיא אובייקט עם url, עם gain מ-0 עד 200, עם השדה הבוליאני muted ועם kind אופציונלי. הייצוא מעתיק את זרם הווידאו בלי שינוי, והזרם אף פעם לא מקודד מחדש.
מדיה
nodaro media download <url> [--max-height <px>] [--section <a-b>] [--watch] [--json]
nodaro media metadata <url> [--json]
nodaro media trim-video --video <url> --start <sec> --end <sec>|--keep-first <sec>|--keep-last <sec> [--watch] [--poll-interval <ms>] [--json]
nodaro media trim-audio --video <url>|--audio <url> [--start <sec>] [--end <sec>] [--format mp3|wav|aac] [--watch] [--poll-interval <ms>] [--json]
nodaro media split-media --video <url>|--audio <url> --chunk-duration <sec> [--min-part-duration <sec>] [--format mp3|wav|aac] [--watch] [--poll-interval <ms>] [--json]
nodaro media add-captions <videoUrl> [options, see below]
nodaro media still-to-video --image <url> --audio <url> [--motion none|zoom-in|zoom-out|pan-left|pan-right|ken-burns] [--intensity <1-10>] [--resolution 720p|1080p|4K] [--aspect-ratio <W:H>] [--fps 24|30] [--fit cover|contain] [--pad-color <hex>] [--watch] [--poll-interval <ms>] [--json]
nodaro media slideshow --images <url...> [--audio <url>] [--durations "10,auto,auto"] [--per-image <sec>] [--transition <id>] [--transition-duration <sec>] [--motion none|zoom-in|zoom-out|ken-burns|alternate] [--intensity <1-10>] [--resolution 720p|1080p|4K] [--aspect-ratio <W:H>] [--fps 24|30] [--fit cover|contain] [--pad-color <hex>] [--watch] [--json]
nodaro media collage <imageUrls...> [--sizes <0-3,...>] [--numbered] [--label <text>...] [--badge-position top-left|top-right] [--layout smart|grid] [--resolution 2K|4K] [--aspect-ratio <W:H>] [--gap <px>] [--background-color <hex>] [--watch] [--poll-interval <ms>] [--json]
nodaro media overlay <imageUrl> [layerUrls...] [--layers-file <path>] [--anchor <anchor>] [--x <%>] [--y <%>] [--width <%>] [--opacity <0-1>] [--platform <id>...] [--qr-text <text>] [--mask-mode none|layers|around|outside] [--mask-spread <px>] [--canvas <WxH>] [--base-fit contain|cover] [--background-color <hex>] [--output-format png|jpg|webp] [--watch] [--poll-interval <ms>] [--json]
nodaro media overlay-placement <imageUrl> [--intent <text>] [--aspect <ratio>] [--safe-area <x,y,w,h>] [--json]
nodaro media video-overlay <videoUrl> [layerUrls...] [--at <start[-end]>...] [--preset card|corner-badge|full-frame] [--corner top-left|top-right|bottom-left|bottom-right] [--layers-file <path>] [--aspect 16:9|9:16|1:1|4:5] [--base-fit cover|contain] [--background-color <hex>] [--watch] [--poll-interval <ms>] [--json]
nodaro media generate-mask <imageUrl> <prompt> [--threshold <n>] [--watch] [--poll-interval <ms>] [--json]
nodaro media video-mask <videoUrl> <prompt> [--threshold <n>] [--model sam-3.1|sam-3] [--hold-last-mask] [--min-subject-height <pct>] [--max-subject-height <pct>] [--zone <L,R,T,B>] [--per-shot] [--redetect-every <sec>] [--watch] [--poll-interval <ms>] [--json]
nodaro media mask-composite <foregroundUrl> <backgroundUrl> <maskUrl> [--invert] [--feather <px>] [--grow <px>] [--background-fit cover|contain|stretch] [--audio foreground|background|mix|none] [--watch] [--poll-interval <ms>] [--json]
nodaro media mask-composite <backgroundUrl> <maskUrl> --fill pixelate|blur [--pixel-size-pct <pct>] [--blur-strength-pct <pct>] [--invert] [--feather <px>] [--grow <px>] [--watch] [--json]
nodaro media save <url> [--filename <name>] [--type image|video|audio] [--watch] [--poll-interval <ms>] [--json]| פקודה | מה היא עושה |
|---|---|
media download | מייבאת לאחסון שלכם את הסרטון שמאחורי קישור. הדגל --section מביא טווח זמן אחד, בשניות. הדגל --watch מציג את ההתקדמות בזמן אמת, ואין משימה שצריך לבדוק את הסטטוס שלה אחר כך. |
media metadata | קוראת את האורך, את הממדים ואת הכותרת של קובץ מדיה לפי הכתובת שלו, בלי להוריד אותו. |
media trim-video | מקצצת סרטון לפי זמן התחלה וזמן סיום, או משאירה את השניות הראשונות או האחרונות שלו. |
media trim-audio | מקצצת את האודיו של סרטון או של קובץ אודיו, ושומרת אותו כ-MP3, WAV או AAC. |
media split-media | חותכת סרטון, קובץ אודיו או את שניהם לחלקים של --chunk-duration שניות לכל היותר ושל --min-part-duration שניות לפחות. ברירת המחדל של המינימום היא 4 שניות. החלקים נמצאים ב-videoUrls וב-audioUrls של המשימה. ראו את הדף פיצול למקטעים. |
media add-captions | צורבת כתוביות בסרטון. ראו את הסעיף כתוביות. |
media still-to-video | הופכת תמונה נייחת אחת וקובץ אודיו אחד לקובץ MP4, תמורת 0 קרדיטים. הסרטון ארוך בדיוק כמו האודיו, ולכן אין דגל שקובע את האורך שלו. הדגל --motion מנפיש את התמונה. |
media slideshow | הופכת בין 2 ל-100 תמונות, עם אודיו אופציונלי, למצגת MP4, תמורת 0 קרדיטים. |
media collage | מסדרת בין 2 ל-30 תמונות בתמונה גדולה אחת. |
media overlay | מציבה עד 12 שכבות על תמונת בסיס, בדיוק ברמת הפיקסל, בלי AI. |
media overlay-placement | שואלת מודל ראייה איפה למקם שכבה אחת. |
media video-overlay | מציבה בין 1 ל-20 שכבות תמונה מתוזמנות מעל סרטון, בלי AI, תמורת 22 קרדיטים. |
media generate-mask | מוצאת בתמונה נושא שמתואר בטקסט, ומחזירה תמונת מסכה בשחור־לבן, לבנה במקום שבו הנושא נמצא. הדגל --threshold מקבל ערך מ-0 עד 1, וברירת המחדל היא 0.3. המודל שרכיב יצירת מסכה משתמש בו היום מתעלם מהערך הזה, ולכן כדי לשנות את המסכה, שנו את הפרומפט. הפלט של המשימה כולל את maskUrl, המסכה, ואת imageUrl, המקור כפי שהוא. העבירו את שניהם לעריכת השלמה. הפקודה עולה 55 קרדיטים. ראו את הדף יצירת מסכה. |
media video-mask | עוקבת לאורך סרטון אחרי נושא שמתואר בטקסט, ומחזירה סרטון מסכה בשחור־לבן, לבן במקום שבו הנושא נמצא. SAM 3.1 הוא ברירת המחדל, ו---model sam-3 עולה חצי. הדגל --threshold מקבל ערך מ-0.05 עד 0.95, וברירת המחדל היא 0.5. ערך נמוך יותר מוצא יותר. הדגל --hold-last-mask משאיר את המסכה האחרונה בפריימים שבהם הנושא אובד, לכל היותר שנייה אחת. הדגל --min-subject-height משמיט נושאים שהגובה שלהם נמוך מהאחוז הזה מגובה הפריים, והדגל --max-subject-height משמיט את אלה שגבוהים ממנו. הדגל --zone 10,10,5,5 משאיר רק את הנושאים שהמרכז שלהם נמצא בתוך השוליים האלה משמאל, מימין, מלמעלה ומלמטה, מ-0% עד 49% כל אחד. הדגל --per-shot מוצא קודם את החיתוכים בין הסצנות, ומזהה את הנושא מחדש בכל שוט. הדגל --redetect-every, עם ערך מ-1 עד 10 (0, ברירת המחדל, פירושו כבוי), מזהה את הנושא מחדש גם כל מספר כזה של שניות, ועם --per-shot עושה זאת בתוך כל שוט. כך נתפס גם מי שנכנס לפריים או מסתובב למצלמה באמצע שוט. ההרצה איטית יותר, והמחיר לא משתנה. ראו את הדף מסכת וידאו. |
media mask-composite | מציבה את החזית מעל הרקע דרך המסכה, כשהלבן מסמן את החזית. הפקודה עולה 11 קרדיטים לכל 5 שניות של התוצאה, או חלק מהן. הדגל --feather מקבל ערך מ-0 עד 20 פיקסלים, והדגל --grow מ--10 עד 10. עם --fill pixelate או --fill blur, המסכה מתמלאת ברקע עצמו, ולכן הפקודה מקבלת שתי כתובות, של הרקע ושל המסכה, והתוצאה נקבעת לפי הרקע. הדגל --pixel-size-pct מקבל ערך מ-0.2 עד 10, עם ברירת מחדל של 1.25, והדגל --blur-strength-pct מ-0.1 עד 5, עם ברירת מחדל של 2. ראו את הדף שילוב לפי מסכה. |
media save | שומרת באחסון שלכם קובץ מדיה לפי הכתובת שלו, כתמונה, כסרטון או כקובץ אודיו. |
מצגות
עם אודיו, האודיו קובע את אורך המצגת. אורכים שקבעתם עם --durations מותאמים באופן יחסי, וה-CLI מודיע לכם על כך. בלי אודיו, המצגת שקטה, והאורך שלה הוא מספר התמונות כפול --per-image.
קולאז׳ים
- הדגל
--sizesנותן לכל תמונה רמז לגודל יחסי, לפי סדר התמונות: הערך0פירושו אוטומטי,1גדול (רחב בערך פי שניים),2בינוני ו-3קטן (בערך בחצי הרוחב). רמזי הגודל עובדים רק בפריסה החכמה. - הדגל
--numberedמטביע מספר סידורי, החל מ-1, בפינה של כל תמונה, לסטוריבורדים. - הדגל
--badge-positionקובע את הפינה הזו:top-left, ברירת המחדל, אוtop-right. הוא קובע גם את המיקום של התוויות. - הדגל
--labelמוסיף כיתוב אחרי המספר. חזרו עליו פעם אחת לכל תמונה, לפי הסדר; ערך ריק,"", מדלג על תמונה אחת.
שכבות על תמונה
- כתובות של תמונות שמופיעות אחרי תמונת הבסיס הן שכבות תמונה. כולן חולקות את אותם
--anchor,--x,--y,--widthו---opacity, הגדרות משותפות שמתאימות לסימן מים. - הדגל
--layers-fileמקבל במקום זאת את מערך ה-JSON המלא של השכבות: אפשרויות לכל שכבה, וגם שכבות מסוג טקסט, קוד QR וצורה. - המיקום נמדד באחוזים מתמונת הבסיס, ולכן אותה פקודה מתאימה גם לתצוגה מקדימה ב-1K וגם לרינדור ב-4K.
- הדגל
--platform, שאפשר לחזור עליו, מרנדר את התמונה המשולבת גם בגודל של הפלטפורמה הזו. רינדור הבסיס עולה 11 קרדיטים, וכל פלטפורמה מוסיפה למחיר. הפלט של המשימה מפרט את הרינדורים הנוספים ב-variants. - הפקודה
overlay-placementעונה באותן יחידות של אחוזים: נקודת עיגון,x,y,widthונימוק בשורה אחת. היא עונה מיד, בלי משימה שצריך לבדוק את הסטטוס שלה, ועולה כמו קריאה אחת מתמונה לטקסט.
שכבות על וידאו
- תנו
--atאחד לכל כתובת של תמונה, לפי הסדר. הערך3פירושו מ-3 שניות ועד הסוף, והערך1.2-2.6פירושו מ-1.2 עד 2.6 שניות. - הדגלים
--presetו---cornerחלים על כל שכבת תמונה שניתנה ככתובת. - הדגל
--layers-fileמקבל במקום זאת את מערך השכבות המלא, עם תיבה, אטימות, אנימציה וסדר שכבות לכל שכבה. - הדגלים
--base-fitו---background-colorדורשים את--aspect. - האודיו של סרטון הבסיס נשמר בלי שינוי.
אפשרויות השכבות מתוארות בדף של רכיב שכבה על וידאו.
כתוביות
nodaro media add-captions <videoUrl> [--text <text>] [--captions-file <file.json>] [--style subtitle|word-highlight|karaoke|tiktok-words|word-pop|bouncy] [--look outline|clean] [--position bottom|top|center] [--position-y <pct>] [--font-size <px>] [--font-family <name>] [--font-weight <100-900>] [--color <c>] [--background-color <c>] [--stroke-color <c>] [--stroke-width <px>] [--highlight-color <c>] [--uppercase|--no-uppercase] [--max-words-per-line <1-20>] [--animate|--no-animate] [--no-auto-transcribe] [--transcribe-provider elevenlabs-stt|incredibly-fast-whisper|whisper] [--segments-file <file.json>] [--watch] [--poll-interval <ms>] [--json]ל-media add-captions יש שני סוגים של סגנונות, כמו לרכיב הוספת כתוביות:
| סגנון | מה הוא מציג |
|---|---|
subtitle | כתוביות סטטיות, בלי אנימציה של מילים. |
word-highlight, karaoke, tiktok-words, word-pop, bouncy | כתוביות מונפשות, מילה אחר מילה. הסגנונות word-highlight, karaoke ו-bouncy מציגים שורה אחת בכל פעם, שנשארת על המסך. |
הטקסט של הכתוביות
- בסגנון
subtitle, הטקסט של--textנצרב כגוש קבוע אחד לכל הסרטון. תמלול אף פעם לא מחליף אותו. כדי ליצור כתוביות מהדיבור, השמיטו את--text. - בסגנון מונפש, הטקסט של
--textהוא רק חלופה: משתמשים בו כשהתמלול לא מחזיר כלום, או כשאתם מעבירים את--no-auto-transcribe. - הדגל
--captions-fileמקבל קובץ עם מערך JSON של רשומות עם תזמון לכל מילה,[{ text, startMs, endMs }], רשומה אחת לכל מילה בסגנונות המונפשים. השדהwordsבתוצאה שלnodaro audio transcribeמתאים לפורמט הזה כמו שהוא; העבירו את הקובץ יחד עם--no-auto-transcribe. - הדגל
--segments-fileנותן לטווחי זמן סגנון, מראה ומיקום משלהם. אסור שהטווחים יחפפו זה לזה.
עיצוב
- דגלי העיצוב חלים גם על הסגנון
subtitle:--look,--font-family,--font-weight,--stroke-color,--stroke-width,--uppercase,--position-yו---max-words-per-line. כתוביתsubtitleעם עיצוב מתומחרת במחיר של כתוביות מונפשות; כתוביתsubtitleפשוטה נשארת במחיר הנמוך יותר. - הדגלים
--highlight-colorו---animateעובדים רק בסגנונות מונפשים. בסגנוןsubtitleהם נדחים. - הדגל
--animateמופעל כברירת מחדל. הדגל--no-animateעוצר את התנועה של כל מילה, ושומר על הקיבוץ ועל צבע המילה הנאמרת. - בלי
--look, הסגנונות המונפשים מרונדרים כ-outline, והסגנוןsubtitleמרונדר כ-clean. - הדגל
--max-words-per-lineמגביל את מספר המילים בשורת כתובית אחת, או בקבוצה אחת שלtiktok-words, מ-1 עד 20. גם רוחב הפריים, סופי משפטים והפסקות של 0.5 שנייה ומעלה שוברים שורות. מילה אחת או שתיים נותנות כתוביות קצרות וקולעות שנקראות מהר; כדי למלא את הרוחב, השמיטו את הדגל. בכתוביתsubtitleעם--text, הוא קובע רק את שבירת השורות, ואין לו השפעה עלword-pop. - רינדור מונפש או מעוצב שומר על קצב הפריימים של המקור, כמספר שלם בין 15 ל-60 פריימים לשנייה. מקור עם קצב פריימים משתנה, או מקור ארוך מאוד, מרונדר ב-30 פריימים לשנייה.
מנוע התמלול
הדגל --transcribe-provider בוחר את המנוע שמתמלל את הדיבור. סגנון מונפש צריך תזמון לכל מילה, מ-incredibly-fast-whisper, ברירת המחדל, או מ-elevenlabs-stt. הסגנון subtitle צריך רק תזמון ברמת המשפט, ולכן גם המנוע whisper עובד בו.
אודיו
nodaro audio separate --audio <url> [--mode vocal_instrumental|stems] [--quality auto|fast|best] [--watch] [--poll-interval <ms>] [--json]
nodaro audio isolate --audio <url> [--watch] [--poll-interval <ms>] [--json]
nodaro audio fx --audio <url> [--preset <preset>] [--mix <0-100>] [--delay <20-2000>] [--decay <0-1>] [--eq-low <db>] [--eq-high <db>] [--watch] [--poll-interval <ms>] [--json]
nodaro audio mix --audio <url> --audio <url> ... [--volumes <csv>] [--duck-under <index>] [--duck-amount <0-100>] [--watch] [--poll-interval <ms>] [--json]
nodaro audio adjust-volume --audio <url>|--video <url> [--volume <0-200>] [--normalize] [--fade-in <sec>] [--fade-out <sec>] [--watch] [--poll-interval <ms>] [--json]
nodaro audio pitch-tempo --audio <url>|--video <url> [--semitones <-12..12>] [--tempo <0.5-2>] [--no-preserve-formants] [--watch] [--poll-interval <ms>] [--json]
nodaro audio combine --segment <url[@a-b]> --segment ... [--watch] [--poll-interval <ms>] [--json]
nodaro audio transcribe --audio <url> [--provider elevenlabs-stt|incredibly-fast-whisper|whisper] [--language <code>] [--diarize] [--tag-audio-events] [--word-timestamps] [--watch] [--poll-interval <ms>] [--json]| פקודה | מה היא עושה | רכיב |
|---|---|---|
audio separate | מפרידה את השירה מהאינסטרומנטל, או מפצלת לסטמים. | הפרדת אודיו |
audio isolate | משאירה את הקול ומסירה את כל השאר. | מחלץ קול |
audio fx | מחילה ערכת אפקט, עם הגדרות של מיזוג, השהיה, דעיכה ואקולייזר. | אפקטי אודיו |
audio mix | משלבת כמה רצועות במיקס אחד, עם עוצמה משלה לכל רצועה. הדגל --duck-under מנמיך את שאר הרצועות מתחת לרצועה אחת, שמצוינת לפי האינדקס שלה, כשהספירה מתחילה מ-0. הדגל --duck-amount קובע בכמה, וברירת המחדל היא 75. | מיקס אודיו |
audio adjust-volume | משנה את העוצמה, מנרמלת ומוסיפה עמעום כניסה או עמעום יציאה. | כוונון עוצמה |
audio pitch-tempo | מזיזה את גובה הצליל בחצאי טונים, או משנה את הטמפו בלי לשנות את גובה הצליל. עם --no-preserve-formants, האופי של הקול משתנה יחד עם גובה הצליל. | גובה צליל וטמפו |
audio combine | מאחדת מקטעים ברצף, אחד אחרי השני. הצורה url@a-b לוקחת טווח זמן אחד מקובץ. | שילוב אודיו |
audio transcribe | הופכת דיבור לטקסט. | תמלול |
אלה אבני הבניין שרכיב משנה קול Pro משלב, וכאן כל אחת מהן זמינה בנפרד.
מנועי תמלול
| מנוע | תזמון לכל מילה | תמיכה נוספת |
|---|---|---|
elevenlabs-stt | תמיד | --diarize (מי מדבר מתי) ו---tag-audio-events |
incredibly-fast-whisper | עם --word-timestamps | |
whisper | אין, רק מקטעים ברמת המשפט; הדגל --word-timestamps נדחה לפני שנגבים קרדיטים |
כשמשמיטים את --provider, רץ המנוע whisper. ציינו מנוע בכל פעם שאתם צריכים תזמון לכל מילה.
ב-output_data של המשימה שהושלמה נמצאים text, words (רשומה אחת לכל מילה, באלפיות שנייה) ו-json (התמלול המנורמל, גם הוא באלפיות שנייה). רשימת segments ברמה העליונה, בשניות, קיימת רק עם whisper ועם incredibly-fast-whisper; המנוע elevenlabs-stt לא מחזיר אותה, ולכן השתמשו ב-words. לרינדור מונפש, העבירו את words ל-media add-captions --captions-file.
עריכה
פקודות העריכה הן אבני בניין עריכתיות לפודקאסטים ולסרטונים ארוכים. הפקודה edit tighten-episode מריצה עריכה שלמה של פודקאסט בפקודה אחת.
nodaro edit silence-detect <audioUrl> [--threshold-db=-35] [--min-silence-ms <ms>] [--pad-ms <ms>] [--watch] [--poll-interval <ms>] [--json]
nodaro edit audio-sync (--source <[id=]url> ... | --sources-file <file.json>) [--reference <id>] [--watch] [--poll-interval <ms>] [--json]
nodaro edit apply-edl --edl <file.json> [--transcript <file.json>] [--source <url> ...] [--output video|audio] [--quality proxy|final] [--crossfade-ms <ms>] [--clip-key <inMs-outMs>] [--watch] [--poll-interval <ms>] [--json]
nodaro edit plan --mode tighten|clips|chapters|trailer --plan-tier economy|standard|premium --transcript <file.json> (--source <[id=]url[@audio|@video]> ... | --sources-file <file.json>) [--silence <file.json>] [--offsets <file.json>] [--transcript-source <id>] [--instructions <text>] [--style-guide <text>] [--count <n>] [--target-duration-sec <n>] [--target-aspect 16:9|9:16|1:1|4:5] [--platform <name>] [--watch] [--poll-interval <ms>] [--json]
nodaro edit switch-cameras --edl <file.json> --transcript <file.json> [--speaker-map <file.json>] [--speaker-names <file.json>] [--min-shot-ms <ms>] [--lead-ms <ms>] [--max-shot-ms <ms>] [--wide-every <n>] [--layout-hints] [--watch] [--poll-interval <ms>] [--json]| פקודה | מה היא עושה | רכיב |
|---|---|---|
edit silence-detect | מוצאת את קטעי השקט בהקלטה. | זיהוי שקט |
edit audio-sync | מיישרת בין 2 ל-6 הקלטות, אודיו או וידאו, של אותו אירוע. | סנכרון אודיו |
edit plan | מתכננת עריכה מתוך תמלול: הידוק הקצב, חיתוך קליפים, סימון פרקים או חיתוך טריילר. | תוכנית עריכה |
edit apply-edl | מרנדרת רשימת עריכה (EDL) כסרטון או כקובץ אודיו. | החלת רשימת עריכה |
edit switch-cameras | מעבירה כל חיתוך בעריכה למצלמה של האדם שמדבר. התמלול צריך לכלול תוויות דוברים. | מחליף מצלמות |
edit tighten-episode | מהדקת הקלטה אחת לפרק מוגמר: תמלול, תכנון ורינדור, עם כתוביות, מוזיקה ומסגור לפי ההגדרות. | הידוק פרק |
edit continue-use-case | ממשיכה הרצה של רכיב הידוק פרק כמשימה חדשה. | הידוק פרק |
הפקודה edit audio-sync נותנת להקלטות את השמות source-1, source-2 וכן הלאה, אלא אם נותנים מזהה בצורה id=url. ב-output_data.json שלה נמצאים שלושה שדות:
- השדה
reference: ההקלטה שההקלטות האחרות מיושרות לפיה. בוחרים אותה עם--reference. - השדה
offsets: רשומה אחת לכל הקלטה, עםsourceId,offsetMs,confidenceו-driftMsPerHour. - השדה
notes: הערות על היישור.
זמן בהקלטה מומר לזמן בהקלטת הייחוס כך: referenceMs = sourceMs + offsetMs.
הפקודה edit apply-edl --quality proxy מרנדרת תצוגה מקדימה לבדיקה: היא פרטית ומתומחרת בתעריף הנמוך של תצוגה מקדימה. עם --quality final, הפקודה מרנדרת את גרסת המסירה. הדגל --clip-key מציין את הקליפ שהרינדור חותך מתוכנית במצב קטעים, בצורה <first inMs>-<last outMs>. בתוצאה הוא מופיע ב-output_data.clipKey, לצד output_data.quality.
בהקלטה מכמה מצלמות, הפקודה edit plan --offsets מקבלת את ה-output_data.json של משימת edit audio-sync שרצה על אותם מזהי מקורות. התוכנית מחילה את ההיסט של כל מקור לפני שהתכנון מתחיל. מקור שלא נמדד, או שההתאמה שלו חלשה, נדחה; במקום זאת, קבעו את ה-offsetMs שלו ב---sources-file. עריכה מכמה מצלמות מריצה את הפקודות האלה לפי הסדר:
- הפקודה
audio transcribe --provider elevenlabs-stt --diarize, לתמלול עם תוויות דוברים. - הפקודה
edit audio-sync, למדידת ההיסטים. - הפקודה
edit plan --offsets, לתכנון העריכה. - הפקודה
edit switch-cameras, להעברת כל חיתוך למצלמה של הדובר. - הפקודה
edit apply-edl --quality proxyלבדיקה, ואזedit apply-edl --quality finalלמסירה.
הידוק של פרק שלם
nodaro edit tighten-episode --media <url> [--music <url>] [--output video|audio] [--framing 16:9|9:16|1:1|4:5 [--layout auto|single|side-by-side|stacked|grid|pip] [--framing-source auto|static|tracking]] [--no-captions] [--review] [--plan-tier economy|standard|premium] [--instructions <text>] [--watch] [--poll-interval <ms>] [--json]
nodaro edit continue-use-case <jobId> --mode from-failed|render-final [--edit <file.json>] [--type tighten-episode] [--idempotency-key <key>] [--watch] [--poll-interval <ms>] [--json]הפקודה edit tighten-episode מקבלת הקלטה אחת, וידאו או אודיו, של עד 3 שעות. היא מתמללת את ההקלטה, מתכננת את החיתוך המהודק ומרנדרת אותו, ומוסיפה כתוביות, מוזיקה ומסגור לפי ההגדרות. הדגלים --layout ו---framing-source עובדים רק עם --framing. עם --framing-source static, ברירת המחדל, הפריים מתחלק באופן שווה בין הדוברים. הערך tracking עוקב אחרי פנים עם רכיב מסגרות דוברים, שמשלמים עליו לכל 1,000 פריימים דגומים, או חלק מהם, והוא נדחה כשרכיב מסגרות דוברים לא זמין לכם. הערך auto עוקב אחרי פנים כל עוד רכיב מסגרות דוברים זמין לכם, ואחרת מחלק את הפריים באופן שווה. בהרצה, כל שלב עולה לפי התעריף שלו, ובנוסף יש עמלה קבועה לכל הרצה. הדגל --review עוצר בתצוגה מקדימה, כדי שאדם יבדוק אותה.
הפקודה edit continue-use-case ממשיכה הרצה של רכיב הידוק פרק כמשימה חדשה, באחד משני מצבים:
- המצב
from-failedשומר את השלבים שהסתיימו ומריץ את השאר. העמלה משוריינת שוב, כי על העמלה של ההרצה שנכשלה קיבלתם החזר. - המצב
render-finalמרנדר את הפרק באיכות מלאה אחרי תצוגה מקדימה של--review, עם ההגדרות של התצוגה המקדימה ובלי עמלה. הדגל--editמקבל את העריכה שהבודק עשה בתוכנית, כקובץ EDL.
ההרצה ממשיכה בנתיב של סוג הרכיב שלה. הדגל --type מציין את הסוג. בלי --type, ה-CLI קורא את המשימה כדי לברר את הסוג שלה. אסימון בלי ההרשאה jobs:read ממשיך בנתיב של רכיב הידוק פרק.
כשדחייה מציינת משימה אחרת, ה-CLI מדפיס את הקוד ואת המשימה ההיא. הקוד already_running פירושו: בדקו את המצב של המשימה ההיא. הקוד continuation_superseded פירושו: המשיכו את המשימה ההיא במקום זאת. הקוד render_final_already_rendered פירושו: התוצאה של המשימה ההיא היא זו שצריך להשתמש בה. עם --json, הדחייה נכתבת לפלט הסטנדרטי בצורה { "error": { "code", "message" }, "jobId" }, עם קוד היציאה 1.
nodaro edit tighten-episode --media https://cdn.example.com/episode-12.mp4 --framing 9:16 --review --watch
nodaro edit continue-use-case <jobId> --mode render-final --watchשאלות נפוצות
איך מחליפים מה-CLI את הקולות של כמה דוברים בסרטון?
הריצו את הפקודה nodaro voice recast עם --video ועם --voices, קול אחד לכל דובר, לפי הסדר שבו הדוברים מזוהים. לדובר שנשאר עם הקול המקורי, כתבו keep, למשל --voices Rachel,keep,Aria.
איזה מנוע תמלול נותן תזמון לכל מילה?
בפקודה nodaro audio transcribe, המנוע elevenlabs-stt תמיד מחזיר תזמון לכל מילה, והמנוע incredibly-fast-whisper מחזיר אותו עם --word-timestamps. המנוע whisper מחזיר רק מקטעים ברמת המשפט. כשמשמיטים את --provider, רץ המנוע whisper, ולכן ציינו מנוע בכל פעם שאתם צריכים מילים.
האם הפקודות still-to-video ו-slideshow עולות קרדיטים?
לא. הפקודות nodaro media still-to-video ו-nodaro media slideshow מרנדרות את הסרטון בלי שום מודל AI, ועולות 0 קרדיטים.
איך מוסיפים לסרטון כתוביות עם מילים שתיקנתי בעצמי?
תמללו את האודיו במנוע שמחזיר תזמון לכל מילה, ערכו את המילים בקובץ ה-JSON ששמרתם, ואז העבירו את הקובץ לפקודה nodaro media add-captions עם --captions-file ועם --no-auto-transcribe.
אילו פקודות מדיה דורשות Nodaro Cloud?
הפקודות voice analyze ו-voice export רצות ב-Nodaro Cloud בלבד. הפקודות voice recast, edit plan ו-edit switch-cameras רצות ב-Nodaro Cloud, והתקנה באירוח עצמי מריצה אותן דרך החיבור שלה ל-Nodaro Cloud.
דפים קשורים
פקודות
דוגמאות
משנה קול Pro
הוספת כתוביות
תמלול
עודכן לאחרונה
פקודות נכסים
יצירה, חיפוש ואימון של דמויות, מיקומים ואובייקטים מה-CLI של Nodaro, אישור התמונות הראשיות שלהם והוספת וריאנטים וקליפי תנועה לכל נכס.
סביבות עבודה וארגונים
בחרו את סביבת העבודה שבה פקודות ה-CLI של Nodaro פועלות, צרו ארגונים, הזמינו כיתה או צוות בבת אחת וייצאו דוחות שימוש כטבלה, כ-JSON או כ-CSV.