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 -> ییدیش
چند روز پیش ، مدتی را صرف مطالعه فناوری HTTP streaming streaming (HLS) و پیاده سازی رمزگذار HLS ، hlsliveencoder ، نوشته شده در C + + کردم. عملکرد آن ضبط دوربین و میکروفون ، کدگذاری ویدئویی H.264 در زمان واقعی و کدگذاری صوتی aac است و با توجه به مشخصات پروتکل HLS ، فایل TS استاندارد تقسیم شده و پرونده نمایه m3u8 را تولید می کند. از طریق hlsliveencoder من و سرور HTTP شخص ثالث (مانند nginx) ، ما با موفقیت به جریان زنده HTTP پی بردیم و آزمایش را در iPhone انجام دادیم. برخی از دستاوردها را در اینجا می نویسم.
1. تجزیه و تحلیل فناوری HLS
HTTP streaming streaming (HLS) یک پروتکل انتقال رسانه جریان بر اساس HTTP است که توسط شرکت اپل پیاده سازی شده است و می تواند رسانه های جریان مستقیم و درخواستی را تحقق بخشد. این به طور عمده در سیستم IOS برای ارائه راه حل های صوتی و تصویری زنده و درخواستی برای دستگاه های IOS (مانند iPhone و iPad) استفاده می شود. HLS در صورت تقاضا در واقع یک HTTP تقسیم تقسیم شده معمول در تقاضا است. تفاوت در این است که بخشهای آن بسیار کوچک هستند. به منظور تحقق بخشیدن به HLS در صورت تقاضا ، مهم این است که پرونده های رسانه را تقسیم کنید. در حال حاضر ، ابزارهای منبع باز زیادی وجود دارد که می توانند مورد استفاده قرار گیرند. من در اینجا در مورد آن بحث نخواهم کرد ، فقط در مورد فناوری پخش زنده HLS صحبت کنید.
در مقایسه با پروتکل های جریان مستقیم زنده ، مانند پروتکل RTMP ، پروتکل RTSP ، پروتکل MMS و غیره ، بیشترین تفاوت جریان مستقیم HLS این است که سرویس گیرنده زنده جریان داده کاملی ندارد. پروتکل HLS جریان داده های زنده را به صورت پرونده های مداوم ، کوتاه مدت و طولانی مدیا (با فرمت mpeg-ts) در سمت سرور ذخیره می کند ، در حالی که سمت مشتری به طور مداوم این پرونده های کوچک را بارگیری و پخش می کند ، زیرا سمت سرور همیشه پرونده های کوچک جدید را از آخرین داده های زنده ، به طوری که طرف مشتری فقط نیاز به پخش فایل های به دست آمده از سرور دارد تا زنده را تحقق بخشد. دیده می شود که HLS اساساً با استفاده از فناوری VOD به پخش زنده می پردازد. از آنجا که داده ها از طریق پروتکل HTTP منتقل می شوند ، نیازی به در نظر گرفتن مشکل فایروال یا پروکسی نیست و زمان تقسیم بندی پرونده ها بسیار کوتاه است. مشتری می تواند به سرعت نرخ کد را انتخاب و تغییر دهد تا در شرایط پهنای باند مختلف با پخش سازگار شود. با این حال ، به دلیل مشخصات فنی HLS ، تأخیر آن همیشه بیشتر از پروتکل پخش مستقیم زنده است.
با توجه به درک فوق ، برای دستیابی به جریان زنده HTTP ، ما باید فن آوری های کلیدی زیر را مطالعه و پیاده سازی کنیم.
(1) داده های منبع فیلم و منبع صوتی را جمع آوری کنید
(2) داده های اصلی توسط H264 و AAC کدگذاری می شوند
(3) داده های صوتی و تصویری به صورت بسته های mpeg-ts بسته بندی می شوند
(4) استراتژی تولید تقسیم بندی HLS و پرونده نمایه m3u8
2. پروتکل حمل و نقل HTTP
در میان آنها ، نکات اول و دوم در مقاله قبلی من ذکر شده است ، و نکته آخر این است که ما می توانیم از سرور HTTP موجود استفاده کنیم ، بنابراین اجرای نکات سوم و چهارم اصلی است.
(1) چارچوب برنامه و اجرای آن
از طریق تجزیه و تحلیل فوق ، منطق و روند رمزگذار زنده HLS اساساً روشن است: رشته کدگذاری صوتی و تصویری را به ترتیب شروع کنید ، به دست آوردن صدا و فیلم از طریق DirectShow (یا سایر فناوری ها) پی ببرید ، و سپس به ترتیب برای ویدیو و libx264 و libfaac تماس بگیرید برنامه نویسی صوتی بعد از اینکه دو موضوع رمزگذاری ، داده های صوتی و تصویری را به صورت بلادرنگ رمزگذاری کردند ، آنها آن را در یک فایل بخش با فرمت mpeg-ts مطابق با استراتژی پارتیشن سفارشی ذخیره می کنند. هنگامی که یک فایل بخش ذخیره می شود ، پرونده فهرست m3u8 به روز می شود. همانطور که در شکل زیر نشان داده شده است:
در شکل بالا ، پس از دریافت داده های صوتی و تصویری ، hlsliveencoder ابتدا باید تعیین کند که آیا پارتیشن فعلی باید تمام شود یا خیر ، و یک پارتیشن جدید برای ادامه تولید مداوم پارتیشن TS ایجاد کند. لازم به ذکر است که تکه تکه شدن جدید باید از فریم کلیدی شروع شود تا از خرابی رمزگشایی بازیکن جلوگیری کند. کد اصلی به شرح زیر است:
رابط کاربری tsmuxer نیز نسبتاً ساده است.
(2) استراتژی تولید بخش HLS و m3u8
استراتژی تقسیم بندی
استراتژی تقسیم بندی HLS اساساً توصیه می شود هر 10 ثانیه تقسیم شود. البته زمان مشخص باید با توجه به طول واقعی تقسیم مشخص شود
به طور کلی ، به دلیل حافظه پنهان و دلایل دیگر ، آخرین سه آدرس قطعه در پرونده فهرست نگهداری می شوند و به صورت "پنجره کشویی" به روز می شوند.
② معرفی فایل m3u8
M3u8 پرونده شاخص جریان مستقیم HTTP است. M3u8 را می توان به عنوان. در اصل فایل فرمت M3U ، تفاوت در این است که فایل m3u8 از رمزگذاری کاراکتر UTF-8 استفاده می کند.
کپی کردن کد
# سرآیند فایل Extm3u M3U ، باید در سطر اول قرار گیرد
# شماره سریال اولین بخش TS از توالی ext-x-media
# Ext-x-targetduration حداکثر مدت زمان هر بخش TS
# آیا ext-x-allow-cache حافظه پنهان را مجاز می کند
# انتهای فایل ext3 x-endlist m8uXNUMX
#Extinf اطلاعات اضافی ، اطلاعات تقسیم ts ، مانند مدت زمان ، پهنای باند و غیره
|
ایمیل را وارد کنید تا غافلگیر شوید
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
دسته بندی ها
عضویت در خبرنامه