Pregunta

Estoy en una situación en la que necesito obtener una parte de MPEG4V1 (Microsoft MPEG-4 VKI Codec V1) datos ubicados al comienzo de un paquete (que fue enviado por alguna unidad de DVR).

La estructura de paquetes se parece a esto:

  • Datos de MPEG4 comprimidos.
  • Integer Long - Número de eventos y cables de viaje.
  • Integer Long - Número de eventos.
  • Evento: la secuencia del evento.
  • Integer Long - Número de cables de viaje.
  • Tripwire - secuencia de pañuelos de trampa.
  • Integer Long - Código redundante cíclico (CRC).

Por lo tanto, no hay indicios de cómo saber dónde hace el MPEG4 Data termina (¿O hay?), y de dónde debo comenzar a leer estos datos adicionales como "Número de eventos y cables de viaje" y etc...

Subí dos paquetes para que puedas ver cómo se ven los datos reales:Recvdata1.txt, RecvData2.txt.

He intentado decodificar esos paquetes usando la biblioteca FFMPEG con la función AVCODEC_DECODE_VIDEO y eliminando Byte by Byte desde el final de mi recvdata buffer en una esperanza de cualquier resultado,
Pero FFMPEG simplemente regresó con un mensaje de error como este:

[MSMPEG4V1 @ 038865A0] Código de inicio no válido", [MSMPEG4V1 @ 038865A0] DAÑADO".

No soy tan bueno especialista en saber cómo funciona el MPEG4 desde el interior, pero a juzgar por los mensajes de error se ve claramente que me falta algunos datos para decodificar al comienzo del búfer.

Así que no estoy seguro de qué parte / tipo de datos MPEG estoy obteniendo aquí.
¿Tal vez es algún tipo de datos de "marco" de MPEG con su indicación "final" o algo así?

Incluso he comparado el comienzo de mi recvdata Buffer a algunos de los archivos de video codificados MPEG4V1 que encontré en la red "http://www.trekmania.net/clips/video_clips4.htm" para verificar si el inicio de mi búfer realmente contiene los datos de MPEG ... y no algún tipo de material específicos del proveedor de DVR ..

Y noté que hay alrededor de 20 bytes de datos (al comienzo de los datos de mis paquetes, y en los archivos .avi justo después de aproximadamente ~ 180 bytes ...) que parece algún tipo de encabezado o algo así ...

Verifique esta imagen: "http://ggodis.gamedev.lt/stackoverflow/recvdata.jpg"

¿Quizás alguien sabe qué representa esta parte de los datos MPEG4V1?

PD .. He revisado los valores de CRC para mis paquetes recibidos y estaban en lo correcto.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top