"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo transmitir vídeos MP4 en un servidor web Golang?

¿Cómo puedo transmitir vídeos MP4 en un servidor web Golang?

Publicado el 2024-11-14
Navegar:594

How Can I Stream MP4 Videos in a Golang Web Server?

Servidor web GoLang Streaming Video

P: Un servidor web Golang configurado para servir HTML, CSS, JavaScript e imágenes sin éxito intenta transmitir un video MP4.

El problema surge del manejo de archivos de video grandes. Chrome requiere que los servidores admitan solicitudes de rango para videos que exceden un cierto tamaño, pero el código proporcionado no aborda esto. Al implementar la compatibilidad con solicitudes de rango, el servidor puede enviar solo la parte solicitada del video, lo que permite la reproducción.

R: Mejore el código para admitir solicitudes de rango.

Modificar el código para incluir una verificación de archivos MP4 y enviar encabezados y códigos de respuesta apropiados:

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)
    }
}

Además, considere usar http.ServeFile() para entregar los archivos de video, que admite solicitudes de rango:

if contentType == "video/mp4" {
    http.ServeFile(w, r, path)
}
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3