Necesita ayuda para manejar los datos de MPEG4V1
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