es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo descargar una parte específica de un archivo .m4s

Necesito descargar solo una parte específica (del timestamp a al timestamp b) de un archivo m4s, en realidad necesito dos porque las pistas de audio y video están en archivos separados. He intentado mapear linealmente la línea de tiempo al tamaño del archivo, pero parece que no es el enfoque correcto ya que los dos no parecen coincidir, y a veces la duración del audio ni siquiera coincide con la del video.

¿Existe alguna forma de saber dónde comenzar a cortar el archivo dadas las marcas de tiempo sin descargar todo el archivo primero?

EDIT: respuesta
Necesito crear una herramienta para descargar una parte específica de un video de un sitio web de streaming (el servicio de streaming está al tanto y de acuerdo siempre que no compartamos la herramienta con nadie). Solo hemos logrado encontrar una única fuente de archivo m4s que contiene todo el video, y cuando hago clic en una parte específica de la línea de tiempo del reproductor, se envía una solicitud HTTP con un rango en bytes. El problema es saber cómo mapear el tiempo al rango de bytes, ¿esta información está en algún lugar del encabezado y, de ser así, cómo la leería?

Imagen del encabezado de la solicitud

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en ffmpeg y transmisión de video, puedo sugerir una posible solución a tu problema. Primero, necesitas decodificar el archivo MPD y extraer la información de segmento para el rango de tiempo deseado. La información de segmento contiene el rango de bytes para cada segmento. Con esta información, puedes descargar solo los segmentos necesarios de las pistas de audio y video.

    Para extraer la información de segmento del archivo MPD, puedes utilizar la utilidad mp4dash de MPEG-DASH. Esta utilidad genera un archivo MPD que contiene la información de segmento, incluyendo los rangos de bytes. Luego puedes analizar el archivo MPD y extraer los rangos de bytes para el rango de tiempo deseado.

    Una vez que tienes los rangos de bytes, puedes descargar los segmentos requeridos de las pistas de audio y video utilizando solicitudes HTTP con rango. Esto te ahorrará tener que descargar el archivo completo.

    En cuanto a tu pregunta sobre si la información de rango de bytes está en el encabezado o no, generalmente se incluye en el encabezado de la solicitud HTTP con rango. Sin embargo, en tu caso, parece que los rangos de bytes solo están disponibles en el archivo MPD.

Comments are closed.