הקלטת שולחן העבודה בלינוקס: הכלים והפקודה האחת שאני משתמש בה
הקלטת המסך היא אחת מהמשימות שיש בהן יותר מדי כלים ופחות מדי הנחיה באיזה מהם לבחור. הנה הסקירה, מדורגת לפי כמה אני באמת משתמש בכל אחד, והפקודה היחידה שמכסה את רוב מה שאני צריך.
הכלים
recordMyDesktop היה במשך שנים תשובת ברירת המחדל. הוא מקליט חלון או את המסך המלא לקובץ Ogg Theora, יש לו ממשק GTK קטן, והוא קל. הבעיות שלו הן שהוא איטי בקידוד, נוטה להשמיט פריימים במסך עמוס, ומייצר פורמט שמסורבל בכל מקום חוץ מלינוקס. בסדר להדגמה מהירה; כואב לכל דבר ארוך יותר.
ffmpeg עם x11grab הוא התשובה הכללית. ffmpeg יכול לקרוא ישירות משרת ה-X כהתקן קלט, לקודד לכל
דבר, וללכוד שמע באותו זמן. אין לו ממשק, וזה או הפגם העיקרי שלו או המעלה העיקרית שלו, וזה מה שרוב
הכלים הידידותיים יותר קוראים לו מתחת.
SimpleScreenRecorder הוא הכלי שאני ממליץ עליו לאנשים שרוצים חלון עם כפתורים. הוא באמת פשוט, הוא מקליט אזור או חלון או את המסך כולו, הוא לוכד PulseAudio ו-JACK, הוא מראה לכם את קצב הפריימים שהוא משיג בזמן ההקלטה, והוא נכתב על ידי מישהו שהיה אכפת לו לא להשמיט פריימים תחת עומס. אם אתם מקליטים לעיתים קרובות ואינכם רוצים לזכור דגלים, התקינו אותו והפסיקו לקרוא.
OBS Studio הוא כלי שידור שגם מקליט. הוא מרכיב סצנות מכמה מקורות, מסך, מצלמת רשת, תמונה, שכבת טקסט, ומחליף ביניהן בשידור חי. הוא הבחירה הנכונה להרצאה עם ראש מדבר בפינה, ומוגזם לצורך להראות למישהו על איזה תפריט ללחוץ.
שמע
בכל כלי שתקליטו בו, שאלת השמע זהה: אתם רוצים את המיקרופון, את הצליל שהמכונה מנגנת, או את שניהם? עם PulseAudio, שניהם מקורות. המיקרופון שלכם מופיע תחת שמו; פלט המכונה מופיע כ-monitor של התקן הפלט. פרטו אותם:
pactl list short sources
משהו כמו alsa_output.pci-0000_00_1b.0.analog-stereo.monitor הוא הצליל שהמכונה משמיעה; הרשומה
בלי .monitor היא המיקרופון. להדגמה מוקראת בדרך כלל תרצו את המיקרופון לבדו; להקלטת שיחת וידאו או
משחק, את ה-monitor.
הפקודה
זה מה שאני מריץ להקלטה פשוטה של מסך מלא עם קריינות:
ffmpeg -f x11grab -framerate 30 -video_size 1920x1080 -i :0.0 \
-f pulse -i default \
-c:v libx264 -preset ultrafast -crf 18 \
-c:a aac -b:a 128k \
screencast.mkv
שורה אחר שורה. הקלט הראשון הוא תצוגת ה-X, בשלושים פריימים לשנייה ובגודל המסך המלא; להקלטת אזור, תנו
גודל קטן יותר והוסיפו את ההיסט, -i :0.0+100,200. הקלט השני הוא מקור ברירת המחדל של PulseAudio,
שהוא המיקרופון שלכם אלא אם שיניתם אותו; שימו שם שם של monitor במקום כדי ללכוד את פלט המכונה.
הווידאו מקודד עם x264 בהגדרה המהירה ביותר, וזה החלק החשוב: המקודד חייב לעמוד בקצב המסך בזמן
אמת, ואת האיכות אפשר לשחזר אחר כך. crf 18 הוא איכות גבוהה; הקובץ יהיה גדול. השמע הוא AAC. המעטפת
היא Matroska מפני שהיא שורדת הקלטה שנקטעה; MP4 שלא נסגר כראוי הוא קובץ שבור.
עצרו עם q במסוף, לא עם Ctrl-C, כדי שהקובץ יסתיים כראוי.
המעבר השני
ההגדרה המהירה מייצרת קבצים גדולים. ברגע שההקלטה הסתיימה אין אילוץ זמן אמת, ולכן קודדו מחדש בנחת:
ffmpeg -i screencast.mkv -c:v libx264 -preset slow -crf 23 -c:a copy screencast.mp4
זה לוקח זמן ומייצר משהו בשבריר מהגודל, במעטפת שכל נגן וכל אתר מקבלים. אל תנסו להגיע לשם בצעד אחד; להקלטה ולדחיסה יש דרישות מנוגדות וההקלטה היא זו שאינכם יכולים לעשות מחדש.
מה הייתי אומר למי שמתחיל
התקינו את SimpleScreenRecorder אם אתם רוצים כפתורים. למדו את פקודת ה-ffmpeg האחת אם אתם רוצים
משהו שאפשר לכתוב לו סקריפט. הגיעו ל-OBS רק כשאתם צריכים להרכיב יותר ממקור אחד. ובכל מה שתשתמשו,
הקליטו מהר ודחסו אחר כך, מפני שהפריים שאתם משמיטים בזמן קידוד יפה אבד לתמיד.