RTMP-ל-HLS הוא מסירה מקליטה הפונה למקודד להפעלה מבוססת HTTP. קבלו ואמתו תחילה את מפרסם ה-RTMP; ארזו או המירו אותו ל-HLS לאחר מכן; ואז בדקו את נקודת הקצה של רשימת ההשמעה והנגן שבה הצופה אכן משתמש. חיבור RTMP לבדו אינו הפעלה בדפדפן.
נתיב RTMP-ל-HLS
לכל הפחות, הנתיב הוא מקור → מאזין RTMP → עיבוד או אריזת מדיה → רשימת השמעה ומקטעי HLS → נגן. כל שלב עשוי להיות תקין בעוד שלב מאוחר יותר אינו תקין. לכן על מפעיל לשמור הוכחת קליטה והוכחת צפייה כבדיקות נפרדות.
החליטו אם אפשר להעתיק את המדיה
אריזה עשויה להיות אפשרית ללא המרת וידאו רק כאשר רכיבי הקודק הנכנסים, השמע, חותמות הזמן, קצב תמונות המפתח וחוזה האריזה מתאימים לנתיב ה-HLS היעד. אם אינם מתאימים, המירו בכוונה ותעדו את סולם הפלט. אל תציגו זאת כנתיב העתקה אוניברסלי בלי לבדוק את הפלט שהוגדר.
אמתו לפי הסדר
- פרסמו מקור RTMP ידוע ואשרו שהמאזין מדווח על פעילות ועל מדיה שימושית.
- פתחו את כתובת רשימת ההשמעה של HLS שנוצרה ואשרו שהיא מתעדכנת בזמן שהמקור חי.
- בדקו שניתן לאחזר את המקטעים המפורטים על ידי סביבת הנגן המיועדת.
- האזינו לשמע, בדקו את הווידאו ומדדו את השהיית הצופה בפועל בנתיב שנפרס.
- עצרו והפעילו מחדש את המפרסם; אשרו שרשימת ההשמעה והנגן מתאוששים כפי שתוכנית התפעול שלכם מצפה.
תמונות מפתח, מקטעים והשהיה
HLS מקבץ מדיה למקטעים שרשימת השמעה מפנה אליהם. סקירת HLS של Apple ו-RFC 8216 מתארים את מודל המסירה של רשימות השמעה ומקטעים. משך המקטע, תמונות המפתח של המקודד, חציצת הנגן, התנהגות המקור וכל תצורת CDN תורמים כולם להשהיית הצופה. הפחתת חוצץ אחד אינה קובעת תוצאת השהיה לכל הנתיב; מדדו את הנתיב שאתם מתכוונים להפעיל.
כאשר RTMP תקין אך HLS נכשל
| תוצאה שנצפתה | הבדיקה הבאה |
|---|---|
| מפרסם פעיל, אין רשימת השמעה | בדקו את משימת RTMP-ל-HLS ואת תצורת הפלט שלה. |
| רשימת ההשמעה נטענת, הנגן נתקע | בדקו מסירת מקטעים, שגיאות נגן, תאימות קודק ומדיניות גישה. |
| ההפעלה מתחילה באיחור | מדדו חוצצי מקודד, אריזה, רשימת השמעה, נגן ומסירה לפני שינוי הגדרה. |
Callaba יכולה לקבל מקור RTMP מוגדר ולהעביר אותו לזרימת ההמשך שנבחרה. המאזין אינו בעצמו נגן ציבורי בדפדפן. לאבחון בדפדפן השתמשו בנגן RTMP והפעלה בדפדפן; לתצורת קליטה השתמשו בRTMP Server.
תצורה קשורה
השתמשו במדריך המפעיל של RTMP Server כדי להוכיח קליטה, ואז עיינו בתיעוד Web Player עבור המודול הפונה לצופה. שמרו את מדריך פרוטוקול RTMP לשאלת התעבורה בצד המקור.
אבחון מקומי: אריזת HLS באמצעות FFmpeg
mkdir -p hls-out && ffmpeg -re -i input.mp4 -c:v libx264 -pix_fmt yuv420p -g 60 -c:a aac -f hls -hls_time 2 -hls_list_size 6 -hls_flags delete_segments hls-out/live.m3u8
תוצאה צפויה: live.m3u8 משתנה בזמן שהקלט פועל ומפנה למקטעי מדיה עדכניים ב-hls-out. הגישו את הספרייה הזו דרך שרת HTTP לבדיקת דפדפן; פתיחת נתיב במערכת הקבצים אינה בדיקת מקור HLS. ב-30 fps, -g 60 נותן קצב תמונות מפתח של שתי שניות התואם למשך המקטע בדוגמה. התאימו אותו לקצב הפריימים האמיתי.
ל-Safari יש הפעלת HLS ברמת הפלטפורמה; יישומי דפדפן רבים אחרים משתמשים ב-Media Source Extensions דרך ספריית נגן במקום להתייחס לכל .m3u8 כמקור וידאו HTML מקורי. בדקו את צמד הדפדפן/נגן בפועל. זרימת הממשק המתועדת של Callaba היא ליצור Web Player מ-RTMP Server שנבחר או מקלט נתמך אחר, לפתוח את כתובת הנגן שנוצרה ולאמת גישה והפעלה; ראו תיעוד Web Player.
השלבים הבאים
השתמשו במדריך המפעיל של RTMP Server כדי להוכיח קליטה, ואז עיינו בתיעוד Web Player עבור המודול הפונה לצופה.