¿Por qué puedo transmitir video codificado en h264 desde la cámara web a AMBAS pantallas y archivos, pero NO a videos en bruto?

Quiero transmitir video sin procesar desde una cámara web Logitech C920 y mientrasambos mostrar y guardar el video en un archivo usando GStreamer 1.0.

Esto funciona si transmito video codificado h264 desde la cámara (la cámara proporciona hardware codificado h264), pero falla si transmito video en bruto desde la cámara. Sin embargo, si solo visualizo, o solo guardo en un archivo, la transmisión de video en bruto funciona.

¿Por qué funciona con una transmisión de video h264 pero no con una transmisión de video sin procesar?

transmisión de video codificada h264 desde la cámara a AMBAS pantallas y archivos (FUNCIONA):

gst-launch-1.0 -v v4l2src device=/dev/video0 \
    ! video/x-h264,width=640,height=480,framerate=15/1 ! tee name=t \
    t. ! queue ! h264parse ! avdec_h264 ! xvimagesink sync=false \
    t. ! queue ! h264parse ! matroskamux \
    ! filesink location='h264_dual.mkv' sync=false

transmisión de video sin procesar de la cámara a SOLO visualización (FUNCIONA)

gst-launch-1.0 -v v4l2src device=/dev/video0 \
    ! video/x-raw,format=YUY2,width=640,height=480,framerate=15/1 \
    ! xvimagesink sync=false

transmisión de video sin procesar de la cámara al ÚNICO archivo (FUNCIONA):

gst-launch-1.0 -v v4l2src device=/dev/video0 \
    ! video/x-raw,format=YUY2,width=640,height=480,framerate=15/1 \
    ! videoconvert ! x264enc ! matroskamux \
    ! filesink location='raw_single.mkv' sync=false

transmisión de video sin procesar de la cámara a AMBAS pantallas y archivos (FALLOS):

gst-launch-1.0 -v v4l2src device=/dev/video0 \
    ! video/x-raw,format=YUY2,width=640,height=480,framerate=15/1 \
    ! tee name=t \
    t. ! queue ! xvimagesink sync=false \
    t. ! queue ! videoconvert ! x264enc ! h264parse ! matroskamux \
    ! filesink location='raw_dual.mkv' sync=false

El último comando (video sin formato para mostrar y para el archivo) falla sin advertencias o errores. La salida del terminal gst-launch es exactamente la misma que cuando solo se escribe en un archivo. Aparece la ventana xvimage y muestra una imagen de la cámara, pero la imagen no cambia (es decir, está congelada). También aparece un archivo de cero bytes.

He probado varias versiones de los comandos anteriores, pero creo que esos son los comandos mínimos que pueden reproducir el problema.

¿Alguien entiende lo que estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta