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 -> اليديشية
HLS و Http Live Streaming هما بروتوكولات للبث المباشر تحدده Apple. يتم تنفيذ HLS على أساس بروتوكول HTTP. يتضمن محتوى الإرسال جزأين ، أحدهما ملف وصف M3U8 ، والآخر هو ملف وسائط TS.
1. ملف M3U8
تم وصف ملف الوسائط في نص يتكون من سلسلة من العلامات.
#EXTM3U
# EXT-X-TARGETDURATION: 5
#EXTINF: 5 ،
./0.ts
#EXTINF: 5 ،
./1.ts
# EXTM3U: يجب أن يكون السطر الأول من كل ملف M3U8 هو هذه العلامة.
# EXT-X-TARGETDURATION: حدد الحد الأقصى لطول وقت مقطع الوسائط (بالثواني). يجب أن تكون المدة الزمنية المحددة في #EXTINF أقل من هذه القيمة القصوى أو مساوية لها. يمكن أن تظهر هذه القيمة مرة واحدة فقط.
#EXTINF: وصف طول ملف وسائط واحد. تتبع ملفات الوسائط ، مثل ./0.ts
2. ts ملف
ملف ts هو ملف دفق نقل ، تنسيق ترميز الفيديو الرئيسي هو h264 / mpeg4 ، والصوت هو acc / MP3.
ينقسم ملف ts إلى ثلاث طبقات: ts layer Transport Stream ، و pes layer packet Elemental Stream ، و es layer Elementary Stream. طبقة es هي بيانات الصوت والفيديو ، والطبقة pes هي معلومات وصف إطار البيانات مثل الطابع الزمني المضاف إلى بيانات الصوت والفيديو. تهدف طبقة ts إلى إضافة المعلومات الضرورية لتعريف ونقل تدفق البيانات في طبقة pes
ملاحظة: التفاصيل كالتالي
(1) طبقة ts يتم تثبيت حجم حزمة ts عند 188 بايت ، وتنقسم طبقة ts إلى ثلاثة أجزاء: رأس ts ، ومجال التكيف ، والحمولة. تم إصلاح رأس ts عند 4 بايت ؛ قد يكون مجال التكيف موجودًا أو غير موجود ، وتتمثل وظيفته الرئيسية في ملء البيانات التي تقل عن 188 بايت ؛ الحمولة هي بيانات pes.
رأس TS
بايت التزامن sync_byte 8b ، ثابت عند 0x47
transport_error_indicator 1b مؤشر خطأ النقل ، مما يشير إلى وجود بايت عديم الفائدة بعد حقل التكيف لرأس ts ، عادة 0 ، يتم حساب هذا البايت في طول حقل التكيف
payload_unit_start_indicator 1b مؤشر بدء وحدة التحميل ، والذي تم وضع علامة عليه كـ 1 في بداية حزمة بيانات كاملة
أولوية النقل 1 ب أولوية النقل ، 0 أولوية منخفضة ، 1 أولوية عالية ، عادة 0
pid 13b قيمة pid
Transport_scrambling_control 2b التحكم في التخليط في النقل ، 00 تعني غير مشفر
adapt_field_control 2b إذا كان سيتم تضمين حقل التكيف ، فإن "00" محجوز ؛ "01" تعني عدم وجود حقل تكيف ، فقط الحمولة ؛ "10" تعني فقط مجال التكيف ، لا حمولة ؛ "11" يعني أن التكيف يشمل أيضًا المجال والحمولة.
Continity_counter 4b عداد متزايد ، من 0 و ، لا تأخذ قيمة البداية بالضرورة 0 ، ولكن يجب أن تكون مستمرة
يتم تحديد محتوى طبقة ts بواسطة قيمة PID ، ويتضمن المحتوى الرئيسي: جدول PAT وجدول PMT ودفق الصوت ودفق الفيديو. لتحليل دفق ts ، يجب عليك أولاً العثور على جدول PAT ، طالما أنك تجد PAT ، يمكنك العثور على PMT ، وبعد ذلك يمكنك العثور على دفق الصوت والفيديو. تم إصلاح قيمة PID لجدول PAT عند 0. يجب إدراج جدول PAT وجدول PMT في دفق ts بانتظام ، لأن المستخدم قد ينضم إلى تيار ts في أي وقت ، وهذا الفاصل الزمني صغير نسبيًا ، عادةً كل بضعة إطارات الفيديو لإضافة PAT و PMT. تعد جداول PAT و PMT ضرورية ، ويمكن أيضًا إضافة جداول أخرى مثل SDT (جدول وصف الخدمة) ، ولكن يمكن تشغيل دفق hls طالما كان هناك PAT و PMT.
جدول PAT: وظيفته الرئيسية هي الإشارة إلى قيمة PID لجدول PMT.
جدول PMT: وظيفته الرئيسية هي تحديد قيمة PID لدفق الصوت والفيديو.
دفق الصوت / دفق الفيديو: حمل محتوى الصوت والفيديو.
التكيف
Adaptive_field_length 1B طول مجال التكيف ، عدد البايتات وراء
تأخذ العلامة 1B 0x50 للإشارة إلى PCR أو 0x40 لعدم تضمين PCR
مرجع ساعة برنامج PCR 5B ، مرجع ساعة البرنامج ، يُستخدم لاستعادة ساعة توقيت النظام STC (ساعة وقت النظام) المتوافقة مع المشفر.
stuffing_bytes xB بايت حشو ، القيمة هي 0xff
يجب أن يشمل طول منطقة التكيف بايتة واحدة يحددها مؤشر خطأ الإرسال. pcr هو مرجع ساعة البرنامج ، و pcr ، و dts ، و pts كلها قيم عينات من نفس ساعة النظام ، و pcr تزايدي ، لذلك يمكن تعيينها كقيمة dts ، والبيانات الصوتية لا تحتاج إلى pcr. إذا لم يكن هناك مجال ، فيمكن أن يلعب iPad ، لكن لا يمكن لـ vlc اللعب. عند تعبئة تيار ts ، لا تحتوي جداول PAT و PMT على حقل تكييف. إذا كان الطول غير كافٍ ، فقم فقط بملء 0xff. يحتاج كل من دفق الفيديو ودفق الصوت إلى إضافة حقل تكيف ، والذي يضاف عادةً إلى حزمة ts الأولى وآخر حزمة ts للإطار ، ولا تتم إضافة حزمة ts الوسطى.
تنسيق PAT
جدول PAT 8b ثابت على 0x00
تم إصلاح section_syntax_indicator 1b عند 1
صفر 1 ب ثابت عند 0
تم إصلاح 2b المحجوزة على 11
section_length 12b طول البيانات التالية
معرف تدفق النقل 16 ب ، معرف تدفق النقل ، ثابت كـ 0x0001
تم إصلاح 2b المحجوزة على 11
version_number 5b رقم الإصدار ، ثابت عند 00000 ، إذا تغير PAT ، سيزداد رقم الإصدار بمقدار 1
Current_next_indicator 1b ثابت على 1 ، مما يشير إلى أنه يمكن استخدام جدول PAT هذا ، إذا كان 0 ، انتظر جدول PAT التالي
تم تثبيت section_number 8b على 0x00
قيمة last_section_number 8b ثابتة عند 0x00
حلقة البداية
program_number 16b عندما يكون رقم البرنامج 0x0000 ، فهذا يعني أن هذا هو NIT ، عندما يكون رقم البرنامج 0x0001 ، فهذا يعني أن هذا هو PMT
تم إصلاح 3b المحجوزة على 111
PID 13b قيمة PID المقابلة لمحتوى رقم البرنامج
حلقة النهاية
CRC32 32b رمز التحقق CRC32 من البيانات السابقة
تنسيق PMT
جدول PMT 8b له أي قيمة ، 0x02
تم إصلاح section_syntax_indicator 1b عند 1
صفر 1 ب ثابت عند 0
تم إصلاح 2b المحجوزة على 11
section_length 12b طول البيانات التالية
program_number 16b رقم القناة ، مما يعني أن القناة المرتبطة بـ PMT الحالي ، القيمة هي 0x0001
تم إصلاح 2b المحجوزة على 11
version_number 5b رقم الإصدار ، ثابت عند 00000 ، إذا تغير PAT ، سيزداد رقم الإصدار بمقدار 1
تم إصلاح Current_next_indicator 1b عند 1
تم تثبيت section_number 8b على 0x00
قيمة last_section_number 8b ثابتة عند 0x00
تم إصلاح 3b المحجوزة على 111
PCR_PID 13b معرّف PID لحزمة TS حيث توجد PCR (ساعة مرجعية للبرنامج) ، المعينة على أنها PID للفيديو
تم إصلاح 4b المحجوزة على 1111
program_info_length 12b معلومات وصف البرنامج ، المعينة كـ 0x000 تعني "لا"
حلقة البداية
stream_type 8b نوع الدفق ، العلامة هي فيديو أو صوت أو بيانات أخرى ، تشفير h.264 يتوافق مع 0x1b ، تشفير aac يتوافق مع 0x0f ، تشفير mp3 يتوافق مع 0x03
تم إصلاح 3b المحجوزة على 111
elementary_PID 13b PID المقابل لـ stream_type
تم إصلاح 4b المحجوزة على 1111
ES_info_length 12b معلومات الوصف ، المعينة كـ 0x000 تعني لا
حلقة النهاية
CRC32 32b رمز التحقق CRC32 من البيانات السابقة
(2) طبقة بيس
تضيف طبقة pes طابعًا زمنيًا ومعلومات أخرى لكل إطار فيديو / صوت. تحتوي حزمة pes على الكثير من المحتوى ، ولا نترك سوى المحتوى الأكثر استخدامًا.
رمز بدء pes 3B ، ثابت عند 0x000001
قيمة الصوت 1B لمعرف الدفق (0xc0-0xdf) ، عادةً 0xc0
قيمة الفيديو (0xe0-0xef) ، عادةً 0xe0
طول حزمة pes 2B طول بيانات pes خلف ، 0 يعني طول غير محدود ،
سيتجاوز طول بيانات الفيديو فقط 0xffff
عادةً ما تأخذ العلامة 1B القيمة 0x80 ، مما يعني أن البيانات غير مشفرة ، وليس لها أولوية ، ويتم نسخ البيانات احتياطيًا
تعني قيمة العلامة 1B 0x80 نقاط فقط ، وتعني القيمة 0xc0 نقاط و dts
طول بيانات pes 1B طول البيانات التالية ، القيمة 5 أو 10
قيمة pts 5B 33bit
قيمة dts 5B 33bit
pts هو الطابع الزمني للعرض و dts هو الطابع الزمني لفك التشفير. كلا الطوابع الزمنية مطلوبان لبيانات الفيديو. نقطتا البيانات الصوتية و dts هي نفسها ، لذلك لا يلزم سوى نقاط. هناك نوعان من الطوابع الزمنية ، النقاط و dts ، والتي تنتج عن الإطارات B. نقاط الإطارات I و P تساوي dts. إذا كان الفيديو لا يحتوي على إطارات B ، فستظل النقاط هي نفسها dts دائمًا. اقرأ إطارات الفيديو بالتسلسل من الملف ، وسيكون تسلسل الإطارات المستخرجة هو نفسه تسلسل dts. خوارزمية dts بسيطة نسبيًا ، القيمة الأولية + الزيادة كافية ، حساب النقاط أكثر تعقيدًا ، ويجب إضافة الإزاحة إلى dts.
لا يوجد سوى نقاط في pes الصوت (مثل dts) ، يجب أن يكون للإطارين I و P للفيديو كلا الطابعين الزمنيين ، ولا يحتاج إطار الفيديو B إلا إلى نقاط (مثل dts). لحزم النقاط و dts ، تحتاج إلى معرفة نوع إطار الفيديو ، لكن لا يمكننا الحكم على نوع الإطار من خلال تنسيق الحاوية. يجب تحليل محتوى h.264 للحصول على نوع الإطار.
على سبيل المثال:
IPBBBP
ترتيب القراءة: 1 2 3 4 5 6
ترتيب dts: 1 2 3 4 5 6
ترتيب النقاط: 1 5 3 2 4 6
خوارزمية DTS للفيديو عند الطلب:
dts = القيمة الأولية + 90000 / video_frame_rate ، يمكن تحديد القيمة الأولية بشكل تعسفي ، ولكن من الأفضل عدم أخذ 0 ، video_frame_rate هو معدل الإطارات ، مثل 23 ، 30.
تعتمد النقاط و dts على مقياس الوقت ، 1s = 90000 مقياس زمني ، يجب أن يكون الإطار الواحد 90000 / video_frame_rate النطاق الزمني.
يمكن تحويل قسمة النطاق الزمني لإطار واحد على تردد أخذ العينات إلى مدة تشغيل إطار واحد
خوارزمية dts الصوتية عند الطلب:
dts = القيمة الأولية + (90000 * audio_samples_per_frame) / audio_sample_rate ، قيمة audio_samples_per_frame مرتبطة ببرنامج الترميز ، قيمة aac هي 1024 ، قيمة mp3 هي 1158 ، audio_sample_rate هو معدل أخذ العينات ، مثل 24000 ، 41000. AAC يفك إطار من 1024 عينة لكل قناة ، مما يعني أن مدة الرتل هي 1024 / sample_rate ثانية. لذا فإن الطابع الزمني لكل إطار هو 0 ، 1024 / sample_rate ، ... ، 1024 * n / sample_rate seconds.
يجب أن تستخدم dts و pts في الفيديو المباشر الوقت في دفق البيانات الحية مباشرةً ، ويجب ألا يتم حسابها بواسطة الصيغ.
(3) طبقة es
تشير طبقة es إلى بيانات الصوت والفيديو ، ونحن نقدم فقط h.264 video و aac audio.
فيديو h.264:
لحزم بيانات h.264 ، يجب علينا إضافة nalu (وحدة طبقة تجريد الشبكة) إلى بيانات الفيديو. يتضمن nalu رأس nalu ونوع nalu. تم تثبيت رأس nalu على 0x00000001 (بداية الإطار) أو 0x000001 (في الإطار). تتكون بيانات h.264 من شرائح ، وتشمل محتويات الشرائح: فيديو ، sps ، pps ، إلخ. يحدد نوع nalu محتوى بيانات h.264 اللاحقة.
F 1b forbidden_zero_bit ، تنص h.264 على أنه يجب أن يكون 0
NRI 2b nal_ref_idc ، القيمة 0 ~ 3 ، تشير إلى أهمية هذا nalu ، I frame ، sps ، pps عادة ما يأخذ 3 ، إطار P عادة ما يأخذ 2 ، والإطار B يأخذ عادة 0
اكتب 5b الرجوع إلى الجدول أدناه
وصف nal_unit_type
0 غير مستخدم
1 صورة بدون IDR ، يشير IDR إلى الإطار الرئيسي
2 شريحة التقسيم أ
3 شرائح التقسيم ب
|
أدخل البريد الإلكتروني للحصول على مفاجأة
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
الفئات
بريدك الإلكتروني