
اليوم ، لا يمكن للمرء مفاجأة أي شخص بسرعة الإنترنت من 100 ميغابت / ثانية ، ولكن هناك مشكلة في كيفية استخدامها. جميع العمليات الأساسية لا تقم بتحميل الشبكة بالكامل. في الوقت نفسه ، تعد تنسيقات الصوت والفيديو 4K-8k الثقيلة التي ترغب في مشاهدتها عبر الإنترنت أكثر شيوعًا. وبالنظر إلى السرعة العالية للإنترنت ، يطرح سؤال منطقي - لم لا؟ كيف تتقن السرعة الكاملة التي يقدمها المزود؟ سواء من جانب العميل أو من جانب الخدمة. النظر في كل هذه القضايا في المادة.
لقد صنعت منتجًا جيدًا للبرامج وأريد أن أقول بمزيد من التفصيل كيف يتم ترتيب كل شيء هناك. هناك العديد من التقنيات الجديدة. ربما لأنه لم يخترع أي شخص أي شيء في هذه الصناعة لفترة طويلة ، وقد حان الوقت. هذه المقالة ليست فقط للمطورين ، ولكن أيضًا للأشخاص العاديين. حاولت أن أشرح كل شيء بالبساطة الممكنة.
1. لنبدأ بالأسس الأساسية لتقنيات نقل البيانات اليوم.
هناك فجوة كبيرة في معرفة الكثير من الأشخاص حول خوارزميات نقل البيانات عالية السرعة - أكثر من 10 ميغابت / ثانية ... دعنا نملأ هذه الفجوات:
الفضاء رقم 1. المشكلة هي أن مجمل تكنولوجيات الإرسال اللاسلكي يركز الآن على النقل المستمر للبيانات ، باعتباره أفضل سيناريو.
سيتم نقل كل شيء يتم إرساله عبر wi-fi \ 3G \ 4G وحتى عبر الأسلاك بسرعة أكبر إذا كان ناقل الحركة ثابتًا ، حتى بسرعة أقل من الحد الأقصى. سيكون هذا أسرع بكثير من الإرسال بشكل متقطع ، ولكن بأقصى سرعة.
الأسباب:
- لاستئناف الاتصال ، تتم إضافة المزيد من معلومات الخدمة إلى حركة المرور ؛
- عند استئناف الاتصال ، يمكن للخادم خفض تصنيف العميل وإعطاء البيانات بسرعة أقل (ربما بسبب ظهور عملاء آخرين) ، أو ليس على الإطلاق. حتى في شبكة wi-fi المنزلية ، يمكن للموجه خفض التصنيف ، على سبيل المثال ، بسبب مكنسة wi-fi. أي ينطبق هذا على جميع الشبكات التي يوجد بها أكثر من عميلين. بشكل عام ، الجميع تقريبا :-)
الفضاء رقم 2. عند نسخ البيانات ، يستخدم أي برنامج نوعًا من "الجردل" الذي يستمد البيانات من المصدر وينقلها إلى الوجهة. لذلك ،
يجب أن يكون هذا الجرافة ، بناءً على معدل نقل البيانات ،
بأحجام مختلفة . من السهل أن نفهم: إذا كنت تحصد دلوًا من الماء مع ملعقة صغيرة ، فسوف يستغرق الأمر وقتًا أطول بكثير من تفريغ كوب.
الفضاء رقم 3. لزيادة سرعة تنزيل البيانات عبر الشبكة ، يجب استخدام ذاكرة الوصول العشوائي. ثم يتم سكب أي أقل من مللي ثانية من التأخير عند تسجيل البيانات الواردة في ثوانٍ ودقائق وساعات. لمنع حدوث ذلك ، تحتاج إلى كتابة البيانات أولاً إلى ذاكرة الوصول العشوائي ، ثم إلى "دلو" أكثر ضخامة على وسيط دائم (قرص ثابت). خلاف ذلك ، سوف تنخفض سرعة نقل البيانات بشكل كبير.
هذا يكفي لنسخ الملف فقط.2. هذه الثغرات هي مجرد غيض من فيض. مع نقل الملفات العادي هذا يكفي ، لكن ماذا لو كان ملفنا وسائط متعددة ، ويجب أن نبدأ تشغيله عبر الإنترنت. لا يمكن احتواء ملف الوسائط المتعددة الحديث بالكامل على ذاكرة الوصول العشوائي ، لذلك يجب عليك التفكير في حفظه على القرص.
أفضل استراتيجية مبنية من أعلاه حول المساحات:
- يجب أن يحدث تحميل البيانات بغض النظر عن التشغيل ، بشكل مستمر ؛
- لضمان اللف ، من الضروري إنشاء دفق تحميل بيانات آخر ؛
- للتغلب على الإفريز عند بدء التشغيل ، نظرًا لاستلام البيانات الفنية (برامج الترميز وغيرها) ، فإن التحميل المسبق ضروري. بشكل تجريبي ، وجدت الصيغة: حجم الملف بأكمله هو * 0.002 أو 0.2٪.
هذا يكفي لتشغيل ملفات Flac.3. اتضح أن البث المباشر عبر الإنترنت ، والذي سيستخدم قناة الاتصال الخاصة بنا بطريقة عقلانية وكاملة ، يحتاج إلى ذاكرة الوصول العشوائي ومساحة القرص. بدون هذا ، لن يتم استخدام القناة بالكامل.
وهنا يبدأ تشعب خوارزميات تحميل البيانات! بدون تفاصيل تقنية ، سأقدم لهم في مجلد تقريبي:
- لكي لا يتم تنزيل البيانات مرتين ، من الضروري إجراء تصادم للتيارات. أي إذا بدأنا المسار وسرعان ما عدنا إلى المنتصف ، فيجب أن يقطع التيار الأول الذي يصل إلى الوسط أعماله.
- بحيث لا يتم تنزيل البيانات مرتين ، يجب عدم إنشاء دفق إذا تم تحميل البيانات بالفعل.
- للتشغيل العادي ، من الضروري وجود منطق معقد للتفاعل بين دفق المشغل وتدفقات تنزيل البيانات.
فعلت كل هذا وأكثر من ذلك بقليل. اتضح رائع للغاية. لا تتم مقاطعة البيانات التي يتم تشغيلها وتشغيلها. تم تنزيل ملفات Flac بالكامل في 1-3 ثواني من التشغيل.
وكان ذلك كافيا لتشغيل فيديو Full HD.4. المشكلة هي أن ملفات الوسائط لدينا مختلفة للغاية في الحجم. ومع أفلام Blu-ray 4k ، التي تزن حوالي 80-120 جيجابايت ، لم ينجح شيء. أنشأ اللاعب 15 موضوعًا في البداية ، وقد شاركوا جميعًا في السرعة ، والتي ، بالطبع ، لم تكن كافية للخيط الرئيسي ، الذي كان ينتظره اللاعب. تم تحميل البيانات بأقصى سرعة ، نعم ... لقد قاموا بتنزيل القناة بالكامل ، ولكن تم تعليق الفيديو بدقة 4k ولعبه بشكل أبطأ من عرض الشرائح. لقد تبين أن الكثير من التدفقات ضارة للفيديو 4k ، ولكن أين هي الحدود التي تحولت بعدها الفوائد الكاملة بتقنية Full HD إلى 4K ؟!
نتيجة لذلك ، استقر كل شيء على سرعة القناة. من أجل تحسين المواضيع ، تحتاج إلى معرفة شيئين:
أ) السرعة المطلوبة للتشغيل ، والتي يتم حسابها: (حجم الملف / المدة بالثواني) * 8.
ب) سرعة تحميل البيانات عن طريق التيار الرئيسي الذي يعمل اللاعب حاليا.
إذا نجحنا في تحميل البيانات ، فلدينا بالتأكيد فرصة لقياس سرعة التنزيل. أصبح كل مؤشر ترابط يعرف سرعته (بالميجابايت في الثانية) وهذا لا يفرض تكاليف إضافية على الأداء. تأكد من تحديد البث الذي يعمل عليه اللاعب حاليًا. كل شيء يبدأ في الوضع المعتاد ، متعدد الخيوط. ولكن بمجرد قيام المشغل بحساب مدة ملف الوسائط بالثواني ونقل هذه البيانات ، تحصل جميع التدفقات على سرعة ثابتة وضرورية للتشغيل. بعد هذا مباشرة ، تقارن جميع التدفقات (باستثناء التدفق الرئيسي) السرعة اللازمة مع سرعة التيار الرئيسي وإذا كانت سرعتها أقل ، فإنها تتوقف مؤقتًا. علاوة على ذلك ، يعمل الخيط الرئيسي على زيادة سرعته ببطء ، وبمجرد تجاوز السرعة اللازمة مرتين (كما فعلت) ، فإنه يتوقف مؤقتًا عن جميع التدفقات الثانوية من الإيقاف المؤقت.
وفقًا للملاحظات ، بعد مرور بعض الوقت ، تنخفض سرعة الدفق الرئيسي مرة أخرى وتوقف جميع التدفقات الثانوية مرة أخرى ، وحتى يتم تنزيل البيانات أو اكتمال التشغيل. مثل هذه الإستراتيجية المرنة ، عندما يكون تحميل البيانات متوازيًا ، وإذا لزم الأمر ، يتم ضغطه في دفق واحد ، يقوم بتنزيل قناة الاتصال بشكل كامل ويضمن في الوقت نفسه أسرع تنزيل ممكن للبيانات اللازمة لتشغيل البيانات. تعمل هذه الإستراتيجية بشكل جيد على كل من ملفات 10 MB و 100 GB. للعب عبر الشبكة دون خسارة ، من المستحيل التوصل إلى أي شيء أفضل. إذا كان لديك أي اقتراحات ، فسيسعدني مناقشتها في التعليقات.
مناسب لتشغيل ملفات الوسائط من أي وحدة تخزين 4K-8K.التدفق التدريجي هو أسرع أنواع البث عند نقل البيانات بجودتها الأصلية. لزيادة معدل نقل البيانات ، فإنه يستخدم ذاكرة الوصول العشوائي وخيوط المعالجة المتعددة. يتم تحميل البيانات بشكل غير متزامن إلى دفق التشغيل ، ولكن مع التفاعل النشط معها. أثناء التشغيل ، يتم قياس سرعة الحصول على البيانات ، ويتم تكييف عدد التدفقات النشطة مع قناة البيانات المتوفرة.
يوجد الآن في العالم ميل كبير لزيادة عدد مقاطع الفيديو عالية الدقة ، وتزداد شعبية الأجهزة لتشغيلها.
المصدر www.vox.comمعدل البت 4 كيلو بايت كبير ، لكن ليس مرتفعًا. يقوم برنامج الترميز VP9 الأكثر فاعلية اليوم بضغط فيديو 4 كيلو بت بسرعة 15 ميجابت في الثانية. مع الصوت يخرج حوالي 15.5. يحتوي فيلم Blu-ray بسعة 100 جيجا بايت على معدل بتات حوالي 60 ميجا بايت / ثانية ...
أي شخص في العالم يرغب في مشاهدة مقاطع فيديو 4k لديه سرعة الإنترنت هذه. هذا يعني أنه يمكن مشاهدة مقاطع الفيديو 4k على الإنترنت الآن!
على الرغم من بساطة الخوارزمية الموضحة أعلاه ، يبدو التنفيذ معقدًا للغاية. تُجبر تقنيات البث المتدهور في جودة الفيديو والصوت على إفساد المحتوى بسبب عدم تنفيذ خوارزمية نقل البيانات الصحيحة. أفترض أن العديد من الأشخاص والشركات لديهم (أعلاه) فجوات في المعرفة ، وبطبيعة الحال ، صعوبات في تنفيذ هذه الخوارزمية. لذلك ، كتب مقالا لتبسيط فهم هذه الطريقة في التدفق.
سيكون من الأصعب قليلاً جعل هذه الخوارزمية باستخدام حقوق الطبع والنشر ، ولكن بشكل عام من الممكن أيضًا. عند الحفظ على القرص ، والقراءة ، من الضروري تشفير البيانات. يبدو وكأنه عمل عدواني ضد المستخدم ، ولكن ما يجب القيام به. بعض الشركات تفعل هذا.
لنلقِ نظرة الآن على عيوب البث التقليدي ، مقارنةً بالتقدمية:
- يستحيل تحميل الملف التالي مسبقًا للتنبؤ بالإجراء التالي وتحضيره ؛
- حتى مع وجود انقطاع مؤقت للإنترنت / انقطاع في السرعة ، سوف يظهر إفريز ملحوظ من الصوت / الصورة ؛
- لا يتم استخدام قناة الاتصال بشكل كامل ، ونصف وقت التشغيل في وضع الخمول ، في وقت لا يزال هناك الكثير من البيانات لتحميله ؛
- عدم القدرة على تشغيل فيديو 4k-8k ، حتى عبر شبكة wi-fi بدون أفاريز. لا يمكن الوقوف على هبات مستمرة من الاتصالات والسرعة إلى أقصى حد ، حتى إن الواي فاي المنزلي طوال الفيلم هو ساعتان أو أكثر ؛
- هذا يفرض عبئًا أكبر عند تشغيل محتوى 4 كيلو ، حيث يحتاج المشغل إلى الاحتفاظ بذاكرة الوصول العشوائي من 200 إلى 300 ميغابايت من بيانات الفيديو (بالسرعة المطلوبة التي تصل إلى 60 ميجابايت في الثانية). عند تشغيل خوارزمية التدفق التدريجي ، لم يعد هذا ضروريًا ، حيث إن التشغيل يتم من قرص وليس عبر شبكة.
وفقًا لهذه النقاط ، من الواضح ما الذي لم يعد ممكنًا ، كما كان من قبل. بالطبع ، يمكنك زيادة السرعة \ الذاكرة \ ذاكرة التخزين المؤقت عشر مرات ، ولكن لماذا ، إذا كانت سرعات اليوم كافية بالفعل وتكمن المشكلة في الخوارزميات. خوارزميات سيئة تأتي عاجلا أو آجلا إلى طريق مسدود. اليوم ، يعد التدفق التدريجي هو التكنولوجيا الوحيدة التي تتيح لك إمكانية مشاهدة أفلام 4k 100 Gigabyte بثبات وبشكل مريح عبر الإنترنت.
كمثال على كيفية عمل التكنولوجيا ، كتبت تطبيق وسائط متعددة - مشغل
مكتبة الوسائط . وهو يدعم جميع الأشكال. لإظهار القدرات التي تحتاجها لتشغيله. افتح موقع العرض التوضيحي وانتقل إلى شجرة الدليل "Films (TOP) / 4k movies". هناك يمكنك تحديد أي فيلم ومشاهدته. لدعم جميع التنسيقات ، يجب عليك تبديل وحدة المشغل من ExoPlayer إلى VlcPlayer.
في هذا السيناريو ، سيتم استخدام جميع خوارزميات الحصول على البيانات أعلاه. يدعم تطبيقي البروتوكولات التالية: nmdc \ http \ ftp \ samba ، بالإضافة إلى سحابة Mega.nz.
يتم تشغيل ملفات فيديو 4K بوزن 100 جيجابايت بأقل قدر من التأخير وتنزيلها على الذاكرة بأقصى سرعة ممكنة. يمكنك التحميل المسبق لمزيد من البيانات ببساطة عن طريق الإيقاف المؤقت ، ولكن هذا غير مطلوب عادةً. التشغيل دائمًا ، إن لم يكن مستقرًا ، تكون سرعة القناة قريبة من السرعة اللازمة للتشغيل.
بسبب الثغرات الموضحة أعلاه ، لا تتطور سياسات أكبر الشركات بالطريقة الصحيحة ، مما يؤدي إلى إبطاء التقدم ويمنع غالبًا استخدام الأجهزة وقنوات الاتصال المتاحة بالكامل.
يوفر التطبيق حفظ ذاكرة التخزين المؤقت في الوسائط الخارجية ، ولكن بسبب المضاعفات الغريبة المتمثلة في الوصول إلى الوسائط الخارجية من Google ، فهي مدعومة حاليًا بشكل أساسي من قبل أجهزة Samsung و Android الإصدار 5.0+. في المستقبل ، سوف يظهر الدعم الكامل لوسائط USB الخارجية.
بشكل عام ، تعمل الخوارزمية بشكل كبير على تحسين جودة وسرعة تنزيل البيانات عند الدفق ، كل من الملفات الصغيرة 30-50 ميغابايت والكبيرة 50-120 غيغابايت.
في المنظور يمكن استخدامه:
- لتشغيل محتوى الوسائط 4k-8k عالي الجودة على الهواتف المحمولة وأجهزة التلفزيون والأجهزة الأخرى ؛
- في الواقع الافتراضي لعرض المشاهد الحجمي بدقة عالية ؛
- بالاقتران مع بروتوكولات نظير إلى نظير تشبه السيل ؛
- لتشغيل الموسيقى عالية الجودة بدقة عالية على أي جهاز. أظهر الاختبار التجريبي أن 2 ميغابت في الثانية من قناة اتصال غير مستقرة كافية لهذا الغرض.