تدفق فيديو خادم الويب GoLang
س: تم تكوين خادم الويب Golang لخدمة HTML وCSS وJavaScript والصور دون جدوى محاولات دفق فيديو MP4.
تنشأ المشكلة من التعامل مع ملفات الفيديو الكبيرة. يتطلب Chrome من الخوادم دعم طلبات النطاق لمقاطع الفيديو التي تتجاوز حجمًا معينًا، ولكن الكود المقدم لا يعالج هذا الأمر. من خلال تنفيذ دعم طلب النطاق، يمكن للخادم إرسال الجزء المطلوب فقط من الفيديو، مما يتيح التشغيل.
ج: قم بتحسين التعليمات البرمجية لدعم طلبات النطاق.
تعديل الرمز الذي يتضمن التحقق من ملفات MP4 وإرسال الرؤوس وأكواد الاستجابة المناسبة:
if contentType == "video/mp4" {
size := binary.Size(data)
if size > 0 {
requestedBytes := r.Header.Get("Range")
w.Header().Add("Accept-Ranges", "bytes")
w.Header().Add("Content-Length", strconv.Itoa(size))
w.Header().Add("Content-Range", "bytes " requestedBytes[6:len(requestedBytes)] strconv.Itoa(size-1) "/" strconv.Itoa(size))
w.WriteHeader(206)
}
}
بالإضافة إلى ذلك، فكر في استخدام http.ServeFile() لخدمة ملفات الفيديو، التي تدعم طلبات النطاق:if contentType == "video/mp4" {
http.ServeFile (ث، ص، المسار)
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3