سؤال

وقد شمل أبل HTTP البت التكيف الجري في نظام التشغيل اي فون 3.0 ، وبخاصة سفاري يعالج هذا تلقائيا.

أود أن تلعب مع هذا في انخفاض التكلفة الطريقة, لكن أتوقع أنها سوف تتطلب مخصص HTTP server في أسوأ الأحوال ، مثيرة للاهتمام PHP/الخ البرمجة في أفضل الأحوال.

ولكن أولا أريد أن أعرف ماذا البروتوكول الخلافات أو معيار.HTTP هو معقول بسيطة مثل بروتوكول لكن البت التكيف يعني حجم الملف مختلف قطعة مواقع مختلفة بت ، إلخ.فعلى سبيل المثال ، يقوم العميل أخبر الخادم أي شيء خاص حول تيار كما هو تنزيل, أو هو كل معالجة على الملقم الجانب ؟

القضاء على التخزين المؤقت مؤقتا للمستخدم النهائي جذابة جدا لكل من يعيش المسجلة مسبقا تيارات الفيديو و القيام على حد سواء عبر HTTP بل هو أفضل بالنظر إلى العديد من شبكات الحكومات تحد من غير المنفذ 80 المرور.

  • ما هي التفاصيل التقنية HTTP البت التكيف الجري ، وخاصة التفاح التنفيذ ؟
  • أين هو هذا أفضل تنفيذ جزء من ملقم HTTP نفسها ، وهي جزء من وزارة الدفاع ، في سيناريو...?

  • ما هي التغييرات المطلوبة على جانب العميل ، إذا كان تنفيذ هذا في التطبيق ؟

هل كانت مفيدة؟

المحلول

التحديث

يبدو أن أبل جعلت IETF مشروع اقتراح بعض الناس يعملون بالفعل على segmenters:

HTTP بث مباشر - مشروع-pantos-http-live-streaming-01
http://tools.ietf.org/id/draft-pantos-http-live-streaming-01.txt

اي فون HTTP الجري مع FFMpeg و مفتوح المصدر Segmenter
http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/


يبدو HTTP server يعمل ببساطة غبية HTTP server.التلصص على سبيل المثال موقع الويب المقدمة من قبل أكامي يعطيني معلومات كافية للحصول بدأت مع محتوى ثابت التدفق.

http://iphone.akamai.com/

ورقة العمل ( http://www.akamai.com/dl/akamai/iphone_wp.pdf ) يوفر معلومات حول النقل تيار ترميز لذلك .ts تيارات واضحة.

التشفير (أو منفصلة segmenter عملية) سوف تنتج H. 264/AAC المحتوى في تسلسل المحتوى صغير شرائح, MPEG-2 TS format (.ts).هناك أيضا M3U8 مؤشر الملف مراجع الأجزاء ؛ في حالة من يعيش المحتوى M3U8 هو يتم تحديثها باستمرار لتعكس أحدث محتوى.

H. 264 الترميز يجب أن يكون واحد يمر خط الأساس الشخصي, إطار إعادة ترتيب تعطيل.الأطر الرئيسية المقترحة كل 5 ثوان ، من الناحية المثالية حتى المقسوم من اختيار قطعة طول.

الموقع يوفر M3U8 الملف الذي هو مجرد M3U, ولكن في UTF-8 ترميز الأحرف تنسيق.

هذا الملف ثم يربط إلى M3U8 ملف لكل البت.أفترض أنها يجب أن يكون جميع التخفيضات في نفس المواقف (كل 2 أو 10 ثواني مثلا) بحيث يمكن الانتقال السلس.يبدو تماما العميل مدفوعة - العميل يقرر كيفية قياس عرض النطاق الترددي و الإصدار الذي هو ذاهب للحصول على.

محتويات الملف الرئيسي هي:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=860000
hi/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=512000
med/prog_index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=160000
lo/prog_index.m3u8

ثم كل من الملفات الأخرى هي:

مرحبا/prog_index.m3u8

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10, 
fileSequence0.ts
#EXTINF:10, 
fileSequence1.ts
#EXTINF:10, 
fileSequence2.ts
#EXTINF:10, 
fileSequence3.ts
#EXTINF:1,  
fileSequence4.ts
#EXT-X-ENDLIST

med/prog_index.m3u8

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10, 
fileSequence0.ts
#EXTINF:10, 
fileSequence1.ts
#EXTINF:10, 
fileSequence2.ts
#EXTINF:10, 
fileSequence3.ts
#EXTINF:1,  
fileSequence4.ts
#EXT-X-ENDLIST

لو/prog_index.m3u8

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10, 
fileSequence0.ts
#EXTINF:10, 
fileSequence1.ts
#EXTINF:10, 
fileSequence2.ts
#EXTINF:10, 
fileSequence3.ts
#EXTINF:1,  
fileSequence4.ts
#EXT-X-ENDLIST

هذا يعمل مع HTML 5 فيديو الوسم:

<video width="640" height="480">
   <source src="content1/content1.m3u8" />
</video>

لا يزال هناك الكثير من الأسئلة دون إجابة, ولكن هذا هو على الارجح ما يكفي للبدء.

نصائح أخرى

ومشغل صغير في Python+GStreamer http://code.google.com/p/hls-player/

شاهد هذا للحصول على برنامج تشفير وتجزئة مفتوح المصدر وبعض الأشياء الرائعة الأخرى :)

http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top