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 -> اليديشية
منذ بضعة أيام ، قضيت بعض الوقت لدراسة تقنية البث المباشر HTTP (HLS) وتنفيذ مشفر HLS ، hlsliveencoder ، مكتوب بلغة C +. وتتمثل وظيفتها في التقاط الكاميرا والميكروفون وترميز الفيديو H.264 في الوقت الفعلي وترميز الصوت aac ، ووفقًا لمواصفات بروتوكول HLS ، وإنشاء ملف TS قياسي مجزأ وملف فهرس m3u8. من خلال hlsliveencoder الخاص بي وخادم HTTP التابع لجهة خارجية (مثل nginx) ، أدركنا بنجاح البث المباشر لـ HTTP واجتازنا الاختبار على iPhone. سأكتب بعض المكاسب هنا.
1. تحليل تكنولوجيا HLS
HTTP Live Streaming (HLS) هو بروتوكول نقل وسائط متدفقة يعتمد على HTTP تنفذه شركة Apple Inc. ، والتي يمكنها تحقيق وسائط البث المباشر وعند الطلب. يتم استخدامه بشكل أساسي في نظام 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
#Does ext-x-allow-cache تسمح بالتخزين المؤقت
# End of ext-x-endlist m3u8 file
#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 Wirless ينقل الفيديو والصوت بشكل أسهل!
اتصل بنا
العنوان
No.305 غرفة HuiLan مبنى رقم 273 Huanpu Road قوانغتشو الصين 510620
الفئات
بريدك الإلكتروني