FMUSER Wirless להעביר וידאו ושמע קל יותר!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> אפריקאית
sq.fmuser.org -> אלבנית
ar.fmuser.org -> ערבית
hy.fmuser.org -> ארמנית
az.fmuser.org -> אזרבייג'נית
eu.fmuser.org -> באסקית
be.fmuser.org -> בלארוסית
bg.fmuser.org -> בולגרית
ca.fmuser.org -> קטלאנית
zh-CN.fmuser.org -> סינית (פשוטה)
zh-TW.fmuser.org -> סינית (מסורתית)
hr.fmuser.org -> קרואטית
cs.fmuser.org -> צ'כית
da.fmuser.org -> דנית
nl.fmuser.org -> הולנדית
et.fmuser.org -> אסטונית
tl.fmuser.org -> פיליפינית
fi.fmuser.org -> פינית
fr.fmuser.org -> צרפתית
gl.fmuser.org -> גליציאנית
ka.fmuser.org -> גרוזינית
de.fmuser.org -> גרמנית
el.fmuser.org -> יוונית
ht.fmuser.org -> קריאולית האיטי
iw.fmuser.org -> עברית
hi.fmuser.org -> הינדית
hu.fmuser.org -> הונגרית
is.fmuser.org -> איסלנדית
id.fmuser.org -> אינדונזית
ga.fmuser.org -> אירית
it.fmuser.org -> איטלקית
ja.fmuser.org -> יפנית
ko.fmuser.org -> קוריאנית
lv.fmuser.org -> לטבית
lt.fmuser.org -> ליטאי
mk.fmuser.org -> מקדונית
ms.fmuser.org -> מלאית
mt.fmuser.org -> מלטזית
no.fmuser.org -> נורווגית
fa.fmuser.org -> פרסית
pl.fmuser.org -> פולני
pt.fmuser.org -> פורטוגזית
ro.fmuser.org -> רומנית
ru.fmuser.org -> רוסית
sr.fmuser.org -> סרבית
sk.fmuser.org -> סלובקית
sl.fmuser.org -> סלובנית
es.fmuser.org -> ספרדית
sw.fmuser.org -> סווהילי
sv.fmuser.org -> שוודית
th.fmuser.org -> תאילנדי
tr.fmuser.org -> טורקית
uk.fmuser.org -> אוקראינית
ur.fmuser.org -> אורדו
vi.fmuser.org -> וייטנאמי
cy.fmuser.org -> וולשית
yi.fmuser.org -> יידיש
רקע
MP4 הוא פורמט הווידאו הנפוץ שלנו, ולעתים קרובות כאשר אנו מנגנים קטעי וידאו של שרתים, הוא ישירות מקור הווידאו MP4 המבוקש. אבל למעשה, זה לא טוב. קובץ הכותרת של MP4 [ftyp + moov] גדול, וההפעלה הראשונית צריכה להוריד את קובץ הכותרת השלם ולנתח אותו, ואז להוריד אורך מסוים של סרטון הווידיאו להפעלה. בנוסף, ככל שגודל הסרטון גדל, קובץ הכותרת ימשיך לגדול וזמן ההפעלה הראשוני יהיה ארוך יותר. לאור מצב זה יש צורך בשיטה שיכולה לזרז את הניתוח הראשוני של הסרטון. HLS הוא הפיתרון שהציעה אפל לפתור בעיה זו.
HLS
HLS הוא קיצור של HTTP Live Streaming. זה פרוטוקול העברת רשת מדיה מבוסס HTTP המוצע על ידי אפל. זה יכול לתמוך בשידור חי ובהזמנה בו זמנית, כמו גם ריבוי הגדרות, אודיו ווידאו מסלול כפול, כתוביות ופונקציות אחרות. העיקרון שלו הוא לחלק סרטון שלם למספר קטעי וידאו קטנים, וההפעלה המלאה נוצרת על ידי שחבור קטעים אלה.
HLS נמצא בשימוש נרחב במסופים ניידים. הלקוחות הנוכחיים התומכים בפרוטוקול HLS כוללים:
iOS 3.0 ומעלה, AVPlayer תומך באופן מקורי ב- HLS
Android 3.0 ומעלה
Adobe Flash Player 11.0 ומעלה
העיקרון הכללי שלה הוא זה:
1. אספו אודיו ווידאו
2. קידוד אודיו ווידאו בשרת
3. לאחר הקידוד, העבירו אותו למקטע הזרמים בצורה של זרם תחבורה MPEG-2
4. הסלייסר יוצר קובץ אינדקס ורשימת השמעה ts, קובץ האינדקס משמש לציון מיקום האודיו והווידאו, ו- ts הוא קליפ מולטימדיה אמיתי.
5. שים את משאבי השלב הקודם בשרת HTTP
6. הלקוח מבקש להשמיע את קובץ האינדקס, ותוכן ההפעלה ניתן למצוא באמצעות קובץ האינדקס
M3U8
שלב מרכזי למימוש HLS הוא הצעד הרביעי לעיל, כלומר ארגון קבצי אינדקס ופלייליסטים של ts. פורמט M3U8 משמש כאן. M3U8 היא גרסת ה- Unicode של M3U, 8 פירושה שמשמש בקידוד UTF-8, וגם M3U וגם M3U8 הם פורמטים של קבצים לרשימות מולטימדיה.
תיאור פורמט M3U8
לפעמים נצטרך לשנות באופן ידני את התוכן של קובץ M3U8 לבדיקה או במקרים מיוחדים מסוימים, כך שנצטרך להבין בצורה מסוימת את הפורמט שלו. ההגדרה של פורמט זה נכתבת במסמך RFC 8216. להלן כמה הערות:
קבצי M3U8 חייבים להיות מקודדים ב- UTF-8, ולא יכולים להשתמש בסדר בתים של סדר בתים (BOM), ולא יכולים להכיל תווי בקרה utf-8 (U + 0000 ~ U_001F ו- U + 007F ~ u + 009F)
כל שורה בתוכן הקובץ M3U8 היא שורה ריקה, URI או מחרוזת המתחילה ב- #, ולא יכולות להופיע תווים ריקים.
התגים המובנים הם כולם מחרוזות המתחילות ב- # EXT והן תלויות רישיות.
URI הוא נתיב התוכן, שיכול להיות נתיב יחסי או נתיב מוחלט
קובץ רשימת מאסטר M3U8
קובץ האינדקס הראשי M3U8 משמש בדרך כלל לציון מקורות אינדקס מרובים. בואו ננתח תחילה את התוכן של קובץ m3u8 הראשי hls_vod_mvp.m3u8, ראשו הוא כזה
פורמט כותרת
#EXTM3U
# EXT-X-VERSION: 7
# EXT-X-INDEPENDENT-SEGMENTS העתק קוד
# EXTM3U מציין שהקובץ בפורמט M3U, וכל הקבצים בפורמט M3U צריכים לשים את התוכן בשורה הראשונה.
# EXT-X-VERSIOn מציין את הגרסה התואמת של רשימת ההשמעה, שהיא כיום 7.
# EXT-X-INDEPENDENT-SEGMENTS תג זה מציין כי ניתן לפענח את כל דגימות המדיה בגזרת מדיה באופן עצמאי מבלי להסתמך על מידע אחר על פלחי המדיה.
פורמט כתוביות
התוכן שלהלן הוא כמה כיתובים, תוכן הכיתובים אינו הכרחי.
# EXT-X-MEDIA: TYPE = כתוביות, GROUP-ID = "subs", NAME = "English", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "eng", URI = "subtitles / eng / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = כתוביות, GROUP-ID = "subsC", NAME = "English", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "eng", URI = "subtitles / engc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = כתוביות, GROUP-ID = "subs", NAME = "Japanese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "jpn", URI = "subtitles / jpn / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = כתוביות, GROUP-ID = "subsC", NAME = "Japanese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "jpn", URI = "subtitles / jpnc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = כתוביות, GROUP-ID = "subs", NAME = "סינית", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "zho", URI = "subtitles / zho / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = כתוביות, GROUP-ID = "subsC", NAME = "סינית", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "zho", URI = "subtitles / zhoc / prog_index.m3u8 "העתק קוד
# EXT-X-MEDIA משמש לציון משאבי רשימת מדיה רב לשוניים מאותו תוכן.
TYPE הוא סוג המשאב, והתכנים האופציונליים הם: AUDIO, VIDEO, Subtitles, CLOSED-CAPTIONS.
התוכן שלמעלה מגדיר TYPE = SUBTITLES, שהוא סוג הכתוביות.
GROUP-ID היא הקבוצה אליה שייך התרגום הרב לשוני והיא פרמטר נדרש
NAME הוא מידע התיאור הקריא של זרם התרגום, וערך זה תואם את התצוגה של AVMediaSelectionOption.
ברירת מחדל, בחירה אוטומטית, מאולצת הם שלושה ערכי BOOL המתאימים לשאלה אם זרם התרגום נבחר כברירת מחדל אם חסר מידע נחוץ. זרם ההפעלה מושמע כאשר המשתמש אינו מציג את ההגדרות. FORCED תקף רק לסוג הכתוביות ומשמש לסימון הבחירה האוטומטית הנוכחית של זרם התרגום. .
LANGUAGE משמש לציון סוג השפה, המוגדר על פי [קוד שפה ISO 639] (https://www.w3.org/WAI/ER/WD-AERT/iso639.htm תקן "ISO 639 קוד שפה"). כאשר נגן ברירת המחדל של המערכת בוחר כתוביות, שם רשימת הכתוביות המוצגת מוגדר על פי ערך זה.
ה- URI הוא מידע המיקום של המשאב, שם הוא תואם לקובץ M3U8 עם כותרת משנה. כתוביות / eng / prog_index.m3u8 הוא נתיב יחסי,
באמצעות המידע הנ"ל נוכל לנתח את משמעות התוכן הנ"ל כ: הסרטון הנוכחי תומך בשלושה כתוביות: אנגלית, יפנית וסינית. אך לכל שפה יש שתי הודעות EXT-X-MEDIA. ההבדל ביניהם הוא הקיבוץ, האחד מקובץ בתת-משנה והשני מקובץ בתת-משנה. מדוע ישנן שתי קבוצות? אני אדבר על זה בהמשך.
פורמט וידאו
הסתכל שוב מטה, לאינדקס של תוכן הווידיאו:
#EXT-X-STREAM-INF:BANDWIDTH=827299,AVERAGE-BANDWIDTH=747464,CODECS="avc1.64001f,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970,AUDIO="program_audio",SUBTITLES=" subs"
0640 / 0640.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=360849,AVERAGE-BANDWIDTH=320932,CODECS="avc1.64001f",RESOLUTION=640x360,URI="0640/0640_I-Frame.m3u8"Copy code
EXT-X-STREAM-INF: מאפיין זה מציין מקור גיבוי, כלומר נתיב הפעלת הווידאו ומידע וידאו כלשהו. להלן תצורת התוכן המתאים: BANDWIDTH הוא קצב סיביות השיא, 827299 הוא 827299bit / s, שהוא זמן השיא הגבוה ביותר צורכת 101KB תנועה לשנייה.
רוחב-רוחב ממוצע הוא קצב הסיביות הממוצע, 747464
CODECS הוא קידוד מידע, avc1.64001f, mp4a.40.2, avc מייצג את פורמט הקידוד h264, 64001f הבא הוא פרמטר הקידוד המיוצג על ידי הקסדצימלי, 64, 00, 1f בהתאמה מייצגים שלושה ערכי פרמטר שונים. mp4a הוא פורמט קידוד שמע, וה 40.2 הבאים מייצגים פרמטרים של קידוד שמע.
רזולוציה היא רזולוציית הווידאו. הרזולוציה הנוכחית של מקור הווידאו היא 640x360.
FRAME-RATE הוא קצב המסגרות המרבי, 29.970 מייצג את קצב המסגרות המרבי של ההפעלה הנוכחית הוא 29.970 פריימים לשנייה.
AUDIO היא קבוצת השמע, ו- program_audio הוא שמה של קבוצת השמע המתאימה.
SUBTITLES מציין את קבוצת הכתוביות המתאימה, ו- subs הוא שמה של קבוצת הכתוביות המתאימה. למידע הכתוביות הנ"ל יש מזהה GROUP, וערך זה תואם אותו.
URI הוא נתיב התוכן, 0640 / 0640.m3u8 תואם את נתיב הקובץ m3u8 של מקור הווידאו. ניתן לראות זאת במידע לכידת המנות.
מתחת ל- EXT-X-STREAM-INF נמצא EXT-XI-FRAME-STREAM-INF, המייצג את מסגרת ה- I (מסגרת המפתח) של משאב המולטימדיה הכלול בקובץ הפלייליסט. מכיוון שמסגרת ה- I היא רק תמונה, היא אינה מכילה תוכן שמע, והפרמטרים הנותרים עולים בקנה אחד עם פורמט תוכן הווידאו.
לאחר מכן, ישנם מקורות וידאו המתאימים לרזולוציות שונות, 1920x1080, 1280x720, 960x540, 480x270. מכיוון ש- HLS יעבור באופן אוטומטי את הרזולוציה בהתאם למצב הרשת, בדרך כלל מוכנים לבחירה מספר רזולוציות. על פי ניתוח הנתונים שנתפסו, הקטע הראשון שהושמע הוא רזולוציה 640, השני עד 8 קטעים לאחר מכן הם ברזולוציה 480, ואז הוא עובר לרזולוציה 640.
פורמט אודיו
מבט למטה הוא אינדקס האודיו המתאים
# EXT-X-MEDIA: TYPE = AUDIO, GROUP-ID = "program_audio", LANGUAGE = "eng", NAME = "Audio alternate", AUTOSELECT = YES, DEFAULT = YES, URI = "audio1 / audio1.m3u8" העתק קוד
# EXT-X-MEDIA הופיע לעיל, אך לא הזכיר את הרשימה עבור מספר שפות.
TYPE = AUDIO, הפעם הסוג הוא שמע.
GROUP-ID הוא מזהה הקבוצה, המתאים לתוכן AUDIO ב- EXT-X-STREAM-INF.
URI = audio1 / audio1.m3u8 תואם את נתיב השמע.
מקורות חלופיים לפורמטים שונים של קידוד
בקובץ M3U8 הראשי נוכל לראות גם מקור וידאו ברזולוציית 640, שאינו זהה לרזולוציית 640 לעיל. תוכנו הוא כך:
#EXT-X-STREAM-INF:BANDWIDTH=1922391,AVERAGE-BANDWIDTH=1276855,VIDEO-RANGE=SDR,CODECS="hvc1.2.4.H150.B0,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970 ,AUDIO="program_audio_0",SUBTITLES="subsC"
0640c / prog_index.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1922391,AVERAGE-BANDWIDTH=1276855,CODECS="hvc1.2.4.H150.B0",RESOLUTION=640x360,URI="0640c/iframe_index.m3u8"
# EXT-X-MEDIA: TYPE = AUDIO, GROUP-ID = "program_audio_0", LANGUAGE = "eng", NAME = "Audio alternative", AUTOSELECT = YES, DEFAULT = YES, URI = "audioc / prog_index.m3u8" העתק קוד
פורמט הקידוד של CODECS הוא hvc1.2.4.H150.B0, mp4a.40.2, פורמט קידוד השמע לא השתנה, אך פורמט קידוד הווידיאו השתנה. hvc1 הוא אחד מתבניות הקידוד של HEVC (H265). זהו פורמט קידוד וידאו מהדור החדש שהושק על ידי אפל. בגלל בעיות תאימות, לקוחות רבים אינם יכולים לנתח פורמט זה, ולכן הוא אינו פופולרי במיוחד. מקורות וידאו בפורמט זה מופיעים. זה אמור להיות גיבוי כאן. בהשוואה בין שני תוכן באותה רזולוציה, ניתן למצוא שקצב הסיביות של פורמט hvc1 גבוה יותר מזה של פורמט avc1, מה שמראה שתוכן hvc1 גדול יותר ויחס הדחיסה של avc1 גבוה יותר באותה רזולוציה.
בהתאמה למקור הווידאו בפורמט hvc1, קיבוץ תוכן הכתוביות שלו וקיבוץ תוכן האודיו השתנו, ולכן הכתוביות לעיל כוללות שני עותקים של אותה שפה, והן תואמות את מקורות הווידאו בפורמט avc1 ו- hvc1.
זו הרשימה הראשית של M3U8. השמע והווידיאו של תוכן זה מעובדים בנפרד, אך ניתן לשלב אותם גם.
קובץ M3u8 המכיל מידע מדיה
קח את הקובץ 0640.m3u8 כדוגמה
#EXTM3U
# EXT-X-VERSION: 4
# EXT-X- יעד: 7
# EXT-X- מדיה-רצף: 1
# EXT-X-PLAYLIST-TYPE: VOD
# EXTINF: 6.006,
0640_00001.ts
# EXTINF: 6.006,
0640_00002.ts
# EXTINF: 6.006,
0640_00003.ts
....
# EXT-X-ENDLIS קוד העתקה
# EXTM3U ו- # EXT-X-VERSION הם כותרת הקובץ M3U ומספר גרסה תואם בהתאמה. פורמט זה הוא גרסה מוקדמת ולכן מספר הגרסה נמוך מהקובץ הראשי.
EXT-X-TARGETDURATION מייצג את משך הזמן המרבי של כל קטע השמעה, 7 מייצג 7 שניות, והקטעים בספרייה זו אינם יכולים לחרוג מ- 7 שניות.
EXT-X-MEDIA-SEQUENCE מייצג את מספר הרצף של הקטע הראשון של הפלייליסט, ו- 1, מייצג שקטע ההפעלה מתחיל מ- 1.
#EXTINF מייצג את משך הזמן של הקטע, 6.006 פירושו שהקטע הנוכחי הוא 6.006 שניות. המידע הכולל על משך הסרטון מתקבל על ידי צבירת ערך זה.
0640_00001.ts הוא הנתיב היחסי של הקליפ. הקובץ ts מייצג קטע וידאו או שמע, והוא יכול להיות בפורמטים ts, mp4, aac ועוד. מכיוון שצוין לפתיחה החל מ -1
|
הזן דוא"ל כדי לקבל הפתעה
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> אפריקאית
sq.fmuser.org -> אלבנית
ar.fmuser.org -> ערבית
hy.fmuser.org -> ארמנית
az.fmuser.org -> אזרבייג'נית
eu.fmuser.org -> באסקית
be.fmuser.org -> בלארוסית
bg.fmuser.org -> בולגרית
ca.fmuser.org -> קטלאנית
zh-CN.fmuser.org -> סינית (פשוטה)
zh-TW.fmuser.org -> סינית (מסורתית)
hr.fmuser.org -> קרואטית
cs.fmuser.org -> צ'כית
da.fmuser.org -> דנית
nl.fmuser.org -> הולנדית
et.fmuser.org -> אסטונית
tl.fmuser.org -> פיליפינית
fi.fmuser.org -> פינית
fr.fmuser.org -> צרפתית
gl.fmuser.org -> גליציאנית
ka.fmuser.org -> גרוזינית
de.fmuser.org -> גרמנית
el.fmuser.org -> יוונית
ht.fmuser.org -> קריאולית האיטי
iw.fmuser.org -> עברית
hi.fmuser.org -> הינדית
hu.fmuser.org -> הונגרית
is.fmuser.org -> איסלנדית
id.fmuser.org -> אינדונזית
ga.fmuser.org -> אירית
it.fmuser.org -> איטלקית
ja.fmuser.org -> יפנית
ko.fmuser.org -> קוריאנית
lv.fmuser.org -> לטבית
lt.fmuser.org -> ליטאי
mk.fmuser.org -> מקדונית
ms.fmuser.org -> מלאית
mt.fmuser.org -> מלטזית
no.fmuser.org -> נורווגית
fa.fmuser.org -> פרסית
pl.fmuser.org -> פולני
pt.fmuser.org -> פורטוגזית
ro.fmuser.org -> רומנית
ru.fmuser.org -> רוסית
sr.fmuser.org -> סרבית
sk.fmuser.org -> סלובקית
sl.fmuser.org -> סלובנית
es.fmuser.org -> ספרדית
sw.fmuser.org -> סווהילי
sv.fmuser.org -> שוודית
th.fmuser.org -> תאילנדי
tr.fmuser.org -> טורקית
uk.fmuser.org -> אוקראינית
ur.fmuser.org -> אורדו
vi.fmuser.org -> וייטנאמי
cy.fmuser.org -> וולשית
yi.fmuser.org -> יידיש
FMUSER Wirless להעביר וידאו ושמע קל יותר!
צרו קשר
כתובת:
No.305 חדר HuiLan בניין No.273 Huanpu כביש גואנגזו סין 510620
כל הקטגוריות
ניוזלטר