Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

687
Visualizações
PHP lee el archivo MP4 con otra extensión

Trabajo en un museo, nuestro sitio web tiene muchos videos .MP4. Cambié sus extensiones a .MUS para que fueran más difíciles de descargar (la mayoría de las personas no saben cómo hacer clic derecho en la página web, hacer clic en la etiqueta <video> para descargarlo y luego cambiarle el nombre). Los videos muestran bien. Se parece a esto :

 <video width='640px' height='480px' controls='controls' /> <source type='video/mp4' src='dinos.mus'> ◄█■■■ </video>

Ahora moví los videos a un directorio protegido fuera de WWW, luego uso PHP para leerlos, así:

 <video width='640px' height='480px' controls='controls' /> <source type='video/mp4' src='open_file.php?file=dinos.mp4'> ◄█■■■ </video>

Y esto es open_file.php :

 header( "Content-Type: video/mp4" ); readfile( "/home/" . $_GET["file"] );

Funciona bien... hasta que cambio las extensiones de .MP4 a .MUS, entonces los videos ya no se muestran :

 <video width='640px' height='480px' controls='controls' /> <source type='video/mp4' src='open_file.php?file=dinos.mus'> ◄█■■■ </video>

No entiendo por qué: es el mismo archivo, envío el encabezado correcto con PHP, la etiqueta <video> tiene el tipo correcto. En realidad, sin PHP, la etiqueta <video> funciona bien con los archivos .MUS, por lo que el problema parece ser PHP.

Mi pregunta es: ¿cómo puedo leer los archivos .MUS y enviarlos para que se interpreten como MP4?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

He probado su código, el Tipo de contenido: video/mp4 y el archivo de lectura deberían funcionar (no debería estar relacionado con las extensiones de archivo, imagine si obtiene los datos del archivo de un BLOB, también debería funcionar)

Pero solo si el directorio de home es relativo, utilice "./home/" en lugar de "/home/"

y

asegúrese de que los permisos de directorio/archivo estén configurados correctamente. Digamos que asegúrese de que el directorio de inicio sea EJECUTABLE (chmod a+x para el directorio de inicio) y que los archivos mus tengan PERMISO DE LECTURA (chmod a+r para los archivos MUS)

Así que este open_file.php funciona:

 <?php header("Content-Type: video/mp4"); readfile("./home/" . $_GET["file"]); ?>

Vea un ejemplo de trabajo aquí:

http://www.createchhk.com/SO/testSO20Nov2021b.php

código de la siguiente manera:

 <video width='640px' height='480px' controls='controls' /> <source type='video/mp4' src='open_file.php?file=test2.mus'> </video>
over 4 years ago · Santiago Trujillo Relatório

0

Esto realmente no protegería el archivo. Puede proteger el archivo al alojarlo en otro servidor, almacenar el video en búfer y luego cambiar el nombre del archivo para el siguiente usuario, eliminando efectivamente el archivo hasta que se vuelva a cargar. Sin embargo, esto tomaría un tiempo para codificar.

Sin embargo, una forma diferente de hacer esto sería usar direcciones URL de blob. Estos son los que usa YouTube y evita que las personas encuentren fácilmente la URL del video.

Puede usar el siguiente código PHP para hacer esto:

 <?php // php at top of page $video = file_get_contents('./location/to/file/from/page.mp4'); $video_code = base64_encode($video); ?>

Luego, donde tienes el archivo de video, puedes hacer esto:

 <video width='640px' height='480px' controls='controls' controlslist='nodownload' /> <source type='video/mp4' src='<?php echo $video_code; ?>'> </video>

Si alguien intenta obtener la URL del video y abrirlo, le dirá que el archivo se ha movido. Tampoco pueden descargar el archivo. También recomendaría agregar oncontextmenu='return false;' al video para un poco más de seguridad.

over 4 years ago · Santiago Trujillo Relatório

0

Creo que el tipo MIME para archivos .MUS es application/octet-stream
header( "Content-Type: application/octet-stream" );

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda