Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

141
Vistas
Cifre el video servido por php para que solo se muestre en cierto reproductor html

Estoy usando el siguiente código php para mostrar un video en un reproductor html (biblioteca video.js).

 if ($fp = fopen($path, "rb")) { $size = filesize($path); $length = $size; $start = 0; $end = $size - 1; header('Content-type: video/mp4'); header("Accept-Ranges: bytes"); if (isset($_SERVER['HTTP_RANGE'])) { $c_start = $start; $c_end = $end; list(, $range) = explode('=', $_SERVER['HTTP_RANGE'], 2); if (strpos($range, ',') !== false) { header('HTTP/1.1 416 Requested Range Not Satisfiable'); header("Content-Range: bytes $start-$end/$size"); exit; } if ($range == '-') { $c_start = $size - substr($range, 1); } else { $range = explode('-', $range); $c_start = $range[0]; $c_end = (isset($range[1]) && is_numeric($range[1])) ? $range[1] : $size; } $c_end = ($c_end > $end) ? $end : $c_end; if ($c_start > $c_end || $c_start > $size - 1 || $c_end >= $size) { header('HTTP/1.1 416 Requested Range Not Satisfiable'); header("Content-Range: bytes $start-$end/$size"); exit; } $start = $c_start; $end = $c_end; $length = $end - $start + 1; fseek($fp, $start); header('HTTP/1.1 206 Partial Content'); } header("Content-Range: bytes $start-$end/$size"); header("Content-Length: ".$length); $buffer = 1024 * 8; while(!feof($fp) && ($p = ftell($fp)) <= $end) { if ($p + $buffer > $end) { $buffer = $end - $p + 1; } set_time_limit(0); echo fread($fp, $buffer); flush(); } fclose($fp); exit(); } else { die('file not found'); }

problema, cuando abro el enlace a ese archivo, puedo acceder fácilmente al video. Lo que estoy preguntando es, ¿puedo cifrarlo de alguna manera para que solo el jugador pueda mostrarlo de una manera en la que aún pueda abrirlo localmente desde fuera del sitio en el que está guardado, pero no directamente desde la URL, sino en un lugar específico? ¿jugador?

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Como se menciona en los comentarios, el enfoque típico a utilizar sería DRM. Esto está diseñado para restringir el acceso a un usuario o dispositivo en particular en lugar de un tipo de reproductor HTML5, pero sospecho que funcionará para usted de todos modos.

Si desea un enfoque liviano, menos costoso pero también menos seguro, puede usar un enfoque de "clave clara" junto con los protocolos de transmisión HLS o DASH.

Son similares a las principales soluciones DRM, encriptando el contenido en el lado del servidor y descifrando en el lado del cliente, pero la clave de descifrado del contenido en sí no está encriptada y se pasa de manera abierta entre el servidor y el cliente.

Dado que parece que solo está tratando de dificultar las cosas para el copiador casual de su video, esto puede ser suficiente para usted.

Más detalles de los enfoques HLS y DASH aquí: https://stackoverflow.com/a/45103073/334402

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda