FMUSER بی سیم ویدئو و صدا را راحت تر انتقال می دهد!
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 به Stream Segmenter تحویل دهید
4. برش دهنده یک پرونده فهرست و یک لیست پخش ts ایجاد می کند ، از پرونده فهرست برای نشان دادن موقعیت صدا و تصویر استفاده می شود و ts یک کلیپ چندرسانه ای واقعی است
5. منابع مرحله قبل را روی سرور HTTP قرار دهید
6. مشتری پرونده index را برای پخش درخواست می کند و محتوای پخش را می توان از طریق فایل index پیدا کرد
M3U8
یک گام اساسی برای تحقق HLS چهارمین مرحله فوق است ، یعنی سازماندهی پرونده های فهرست و لیست های پخش ts. در اینجا از قالب M3U8 استفاده شده است. M3U8 نسخه Unicode M3U است ، 8 به این معنی است که از رمزگذاری UTF-8 استفاده شده است ، و M3U و M3U8 هر دو فرمت فایل برای لیست های چندرسانه ای هستند.
شرح قالب M3U8
بعضی اوقات ممکن است لازم باشد محتوای پرونده M3U8 را برای آزمایش یا در موارد خاص به صورت دستی اصلاح کنیم ، بنابراین باید درک درستی از قالب آن داشته باشیم. تعریف این قالب در سند RFC 8216 نوشته شده است. در زیر برخی از یادداشت ها ذکر شده است:
پرونده های M3U8 باید در UTF-8 رمزگذاری شده باشند و نمی توانند از سفارش بایت Byte Order Mark (BOM) استفاده کنند و نمی توانند حاوی نویسه های کنترل utf-8 باشند (U + 0000 ~ U_001F و U + 007F ~ u + 009F)
هر خط از محتوای پرونده M3U8 یا یک خط خالی ، یک URI یا یک رشته است که با # شروع می شود و هیچ حرف خالی نمی تواند ظاهر شود.
برچسب های داخلی همه رشته ها با #EXT شروع می شوند و به حروف کوچک و بزرگ حساس هستند.
URI مسیر محتوایی است که می تواند یک مسیر نسبی یا یک مسیر مطلق باشد
فایل اصلی Master M3U8
پرونده اصلی M3U8 به طور کلی برای تعیین چندین منبع فهرست استفاده می شود. بیایید ابتدا محتوای فایل اصلی m3u8 hls_vod_mvp.m3u8 را تجزیه و تحلیل کنیم ، سر آن مانند این است
قالب سربرگ
#EXTM3U
# نسخه EX-X: 7
# EXT-X-INDEPENDENT-SEGMENTS کد کپی
# EXTM3U نشان می دهد که پرونده در قالب M3U است و همه پرونده های قالب M3U باید محتوا را در سطر اول قرار دهند.
# EXT-X-VERSIOn نسخه سازگار لیست پخش را نشان می دهد که در حال حاضر 7 است.
# EXT-X-INDEPENDENT-SEGMENTS این برچسب نشان می دهد که تمام نمونه های رسانه در یک بخش رسانه را می توان به طور مستقل و بدون اتکا به سایر اطلاعات بخش رسانه ، رمزگشایی کرد.
قالب زیرنویس
محتوای زیر برخی از زیرنویس ها است ، محتوای زیرنویس ها لازم نیست.
# EXT-X-MEDIA: TYPE = SUBTITLES، GROUP-ID = "subs"، NAME = "English"، DEFAULT = YES، AUTOSELECT = YES، FORCED = NO، LANGUAGE = "eng"، URI = "subtitles / eng / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES، 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 = "ژاپنی" ، DEFAULT = YES ، AUTOSELECT = YES ، FORCED = NO ، LANGUAGE = "jpn" ، URI = "زیرنویس ها / jpn / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = زیرنویس ها ، GROUP-ID = "subsC" ، NAME = "ژاپنی" ، DEFAULT = YES ، AUTOSELECT = YES ، FORCED = NO ، LANGUAGE = "jpn" ، URI = "زیرنویس ها / jpnc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = Subtitles، GROUP-ID = "subs"، NAME = "Chinese"، DEFAULT = YES، AUTOSELECT = YES، FORCED = NO، LANGUAGE = "zho"، URI = "زیرنویس ها / zho / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = زیرنویس ها ، GROUP-ID = "subsC" ، NAME = "چینی" ، DEFAULT = YES ، AUTOSELECT = YES ، FORCED = NO ، LANGUAGE = "zho" ، URI = "زیرنویس ها / zhoc / prog_index.m3u8 "کپی کد
# EXT-X-MEDIA برای مشخص کردن منابع لیست چند رسانه ای از همان محتوا استفاده می شود.
TYPE نوع منبع است و مطالب اختیاری عبارتند از: AUDIO ، VIDEO ، SUBTITLES ، CLOSED-CAPTIONS.
محتوای فوق TYPE = SUBTITLES را تنظیم می کند که نوع زیرنویس است.
GROUP-ID گروهی است که ترجمه چند زبانه به آن تعلق دارد و یک پارامتر لازم است
NAME اطلاعات توصیف خواندنی جریان ترجمه است و این مقدار با نمایش نام AVMediaSelectionOption مطابقت دارد.
DEFAULT ، AUTOSELECT ، FORCED سه مقدار 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 827299 بیت در ثانیه است که بالاترین زمان اوج است 101 کیلوبایت ترافیک در ثانیه مصرف می کند.
AVERAGE-BANDWIDTH متوسط نرخ بیت ، 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-ID است و این مقدار با آن مطابقت دارد.
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 = "Alternate Audio"، AUTOSELECT = YES، DEFAULT = YES، URI = "audio1 / audio1.m3u8" کپی کد
# EXT-X-MEDIA در بالا ظاهر شد ، اما لیست چندین زبان را ذکر نکرد.
TYPE = AUDIO ، این بار نوع صوتی است.
GROUP-ID شناسه گروهی است ، مربوط به محتوای صوتی موجود در 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 = "Alternate Audio"، 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
# نسخه EX-X: 4
# EXT-X-TARGETDURATION: 7
# دنباله EXT-X-MEDIA: 1
# نوع-لیست پخش EXT-X: VOD
#EXTINF: 6.006 ،
0640_00001.ts
#EXTINF: 6.006 ،
0640_00002.ts
#EXTINF: 6.006 ،
0640_00003.ts
....
# EXT-X-ENDLIST کد را کپی کنید
# 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 بی سیم ویدئو و صدا را راحت تر انتقال می دهد!
تماس با ما
نشانی:
شماره 305 اتاق HuiLan ساختمان شماره 273 Huanpu Road گوانگژو چین 510620
دسته بندی ها
عضویت در خبرنامه