האם הזרמת השידור החי שלך קורסת כל פעם? אם כן, תצטרך למצוא דרך אמינה לארח את הזרמת השידור שלך. אך אם אין באפשרותך לשלם עבור אפשרויות יקרות, אין צורך לדאוג! NGINX RTMP יכול להציל את המצב. NGINX RTMP הוא מודול קוד פתוח אמין, אז תדע מה זה אומר – זה חינם!
במדריך הזה, תלמד כיצד להגדיר שרת NGINX RTMP כך שתוכל להתקין זרם חי אמין עם האתר שלך.
מוכן? קרא הלאה והתחל להגדיר זרם חי!
דרישות מוקדמות
מדריך זה יהיה הדגמה מעשית. אם ברצונך לעקוב, וודא שיש לך את הדברים הבאים:
- A Linux server – This demo uses Ubuntu 20.04 LTS, but you can use any other Linux distribution with NGINX.
- NGINX מותקן על שרת Linux.
- A non-root user with sudo privileges.
- משאבים מינימליים הנדרשים כדי להפעיל שרת זרימת חיים – 2 ג'יגה RAM, 2 ליבות CPU, ו-20 ג'יגה בתים דיסק.
ערכים אלו הם המלצות בלבד. הערכים המדויקים תלויים בצרכי התעבורה האמיתיים שלך. ככל שיש לך יותר תעבורה, תצטרך להשתמש בשרתים עוצמתיים יותר כדי לארח ולהזרים את הווידאו החי שלך. בסביבת פיתוח, שרת NGINX RTMP עם 2 ליבות CPU ו-2 ג'יגה RAM מספיק לבדוק.
הגדרת שרת RTMP
עכשיו שהתנאים המוקדמים נגמרו, תוכל כעת להתקין ולהגדיר את השרת שלך RTMP. תתקין תחילה מודול NGINX כדי להמיר את השרת שלך NGINX לשרת RTMP. לאחר מכן, תגדיר את קובץ ההגדרות של NGINX כדי לאפשר לזרמים חיים למשתמשים.
1. פתח את הטרמינל והפעל את הפקודה apt update
כדי לעדכן את כל החבילות שלך. הפקודה הזו מסנכרנת את בסיס הנתונים שלך עם בסיס הנתונים העדכני ביותר מ-Ubuntu.

2. לאחר מכן, הפעל את הפקודה הבאה כדי להתקין שרת RTMP בשרת ה-Linux שלך.
המודול libnginx-mod-rtmp
הוא מודול NGINX הממיר את השרת שלך NGINX לשרת RTMP. מודול זה מאפשר ל-NGINX לתקשר עם Adobe Flash Player כך שתוכל לשדר וידאו או שמע חיים, והוא נתמך באופן רשמי על ידי צוות הפיתוח שלו.

3. פתח את קובץ /etc/nginx/nginx.conf בעורך הטקסט האהוב עליך כדי להגדיר את תוכנית השידור החיה שלך RTMP. קובץ nginx.conf הוא קובץ הגדרות NGINX, אשר מכיל הפניות או בלוקים מספר להגדיר את ההתנהגות של שירות ה-NGINX.
4. לבסוף, מלא את קובץ nginx.conf בקוד הבא, שמור את השינויים וצא מהעורך.
הקוד למטה אומר ל-NGINX לפעול כשרת RTMP ולהפעיל זרמים חיים למשתמשים שלך.
מאבטחת את הרשת על ידי הגדרת חומת אש
כבר הגדרת את שרת ה-NGINX RTMP שלך, אך עליך לאבטח את הרשת שלך ולשלוט בזרימת התעבורה. איך? על ידי התקנת חומת אש, Uncomplicated Firewall (UFW), שהיא חומת האש ברירת המחדל באובונטו.
אם תשים את שרת ה-NGINX RTMP שלך מאחורי גישה מוצפנת, תצטרך לאפשר פתח נתיב לשרת NGINX RTMP על ידי הגן האש. מאחר והגדרת את שרת ה-NGINX RTMP שלך להאזין בפורט 1935
, תצטרך לאפשר פתח זה דרך הגן האש שלך.
1. הריצו את הפקודה הבאה כדי להוסיף כלל הגן שפותח את הפורט 1935
בגישה מוצפנת שלכם. כלל הגן הזה מאפשר לפורט שרת ה-NGINX RTMP שלכם, 1935
, להיות נגיש לכל בקשות נכנסות ויוצאות.

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

צילום וידאו באמצעות FFmpeg
השרת ה-NGINX RTMP שלך כעת מופעל, אז זה הזמן להשתמש FFmpeg כדי ליצור סרטון דוגמה ולשדר אותו דרך שרת ה-NGINX RTMP שלך. FFmpeg הוא פתרון מלא להקלטה, המרה ושידור של אודיו ווידאו ביישומים שונים כמו VLC, OMXPlayer, VobSub, ועוד.
תבדקו את השידור של הוידאו בשרת שלכם, וניתן להשתמש בכל וידאו שהוא בגודל קטן לשידור.
1. הרץ את הפקודה apt install
למטה כדי להתקין את התלות הדרושות עבור FFmpeg כדי שהתוכנה תרוץ תקין.
הפקודה למטה מתקינה את הרכיבים הבאים:
libpcre3
– ספרייה רגולרית המשמשת על ידי ערכי הכלים של ffmpeg כדי לעזור לפרש ולהדגיש ביטויים רגולריים.libpcre3-dev
– חבילה זו מכילה את הכותרות לפיתוח של חבילת libpcre3.libssl-dev
– ספריית OpenSSL הקריפטוגרפית המשמשת ליצירת חיבורי SSL/TLS בשרת RTMP שלך.zlib1g-dev
: ספריית zlib היא ספריית דחיסה ופירוק המאיצה את העברת קבצי הווידאו והאודיו ברשת.

2. לאחר מכן, הרץ את הפקודה הבאה כדי להתקין את ffmpeg
בשרת שלך.

3. לבסוף, הרץ את הפקודה ffmpeg
כדי לבצע את הפעולות הבאות וליצור זרם חי חדש:
- קרא קלט (
re
) מהקובץ המקור (i
) בקצב המקורי. ודא שאתה מחליף אתvideo.mp4
בנתיב ושם קובץ הווידאו שלך. - העתק את פורמט הווידאו כמותו (
c:v copy
), וקודד את השמע בקודק AAC (c:a aac
). - קבע את קצב הדגימה של השמע ל-44100 הרץ (
ar 44100
). אם קצב הדגימה של הווידאו שלך נמוך מהערך הזה (44100 הרץ), FFmpeg מבצע אינטרפולציה כדי להגביר את קצב הדגימה. - הגדר ערוצי שמע לערוץ אחד (מונו) (
ac 1
), ואת התבנית הווידאו שבה FFmpeg ישדר (-f flv
). - הגדר את תוכנית השידור החיה שלך ב- RTMP (
rtmp://localhost/live/streamname.flv
) שהגדרת בקטע "הגדרת שרת RTMP" (שלב ארבע). ניתן לשנות אתstreamname.flv
לשם כלשהו שתבחר.
כפי שאתה רואה למטה, פקודת ה- ffmpeg
מדפיסה את מספר ה- פריימים בכל שנייה שהוא זוהה, את קצב הביט, ואת ה- FPS של זרם השידור החי שנוצר חדש.

סיכום
במדריך זה, למדת כיצד להגדיר את שרת ה- NGINX RTMP שלך ולאפשר זרמים חיים על ידי שינוי בקובץ התצורה של NGINX. נגעת גם בהגדרת זרם חי וידאו באמצעות כלי ה- FFmpeg דרך שרת ה- NGINX RTMP שלך.
הבנת פתאום שהקמת זרם חי לא צריכה לעלות לך כל שקל. בנקודה זו, למה לא לשבץ את הזרם שלך לתוך הדף האינטרנטי שלך באמצעות HTML5 ואלמנט <video>. או להקים את OBS Studio עבור זרם RTMP שלך?