Formato de datos de vídeo RTMP
Los datos en RTMP constan del área de datos en el TAG del FLV.
En términos generales, el RTMPPacket ensamblado (estructura en RTMPDump) es:
NALU es NAL UNIT, nal unit.NAL significa Network Abstract Layer, que es la capa de abstracción de la red. Estructura de transmisión H.264 a través de la red. Una trama se codifica en uno o más fragmentos después de pasar por el codificador H.264, y el portador que transporta estos fragmentos es NALU.
? Obtenemos uno o más conjuntos de x264_nal_t mediante codificación x264. Combinado con RTMP, debemos distinguir entre SPS, PPS, fotogramas clave y fotogramas normales:
Un vídeo h264 consta de N grupos de imágenes (GOP se refiere a grupos de imágenes y un GOP). es un grupo de marco continuo. Por investigaciones anteriores, sabemos que los fotogramas I se pueden decodificar de forma independiente, mientras que P y B deben hacer referencia a otros fotogramas.
Como subconjunto de fotogramas I, existe un fotograma I especial llamado fotograma IDR, que se utiliza para la actualización instantánea.
La figura anterior describe 2 grupos de GOP. La diferencia entre otros marcos I y marcos IDR es: actualizar. Cuando el decodificador decodifica el cuadro 5, puede hacer referencia al cuadro 3 a través del cuadro 4, y un cuadro I normal no provocará que se vacíen los datos de información de decodificación del decodificador. Los fotogramas IDR eliminan los datos SPS y PPS necesarios para la decodificación, por lo que el fotograma 8 no se puede decodificar con una referencia al fotograma 7.
Lo que se completa en los paquetes RTMP son datos H.264, no datos codificados directamente desde x264.
Un segmento contiene N imágenes de datos desnudos H.264, cada NAL segmentada por: 00 00 00 01 o 00 00 01.
El primer byte después del delimitador es el tipo de este NAL.
Esto es lo mismo que arriba.
Al agregar datos al RTMPPacket, es necesario eliminar los delimitadores.