2016-04-01 21 views
1

Ich habe ein Raspberry Pi Compute-Modul mit 2 Kameras. Ich versuche, gstreamer mit v4l2src zu verwenden, der/dev/video0 &/dev/video1 wählt, um bei ungefähr 20FPS fortlaufend zu laufen und videomixer zu verwenden, um die Bilder Seite-an-Seite zu kombinieren und H264 dann über RTP zu einem UDP-Anschluss auszugeben (gelesen durch einen anderen) host)/Verwendung von GStreamer mit Videomixer & 2 Kameras Streaming über UDP

Der standardmäßige (aktuelle) RPi v4l2src Treiber unterstützt nicht zwei Kameras, aber ab heute ist eine Beta verfügbar, die jedoch den Beta 4.4.6 Kernel benötigt.

Das Problem, das ich habe, ist in den Mischer verbunden.

#!/bin/bash -x 
# 
# Script to start RPi Compute Module streaming over RTP (RFC3984) 
# from both cameras 
# 
FPS=20       # Frames per second 
WIDTH=640      # Image width 
HEIGHT=480      # Image height 
UPLINK_HOST=192.168.1.73  # Receiving host 
PORT=5200      # UDP port 
# 
# TESTING WITH ONE CAMERA ONLY FOR THE MOMENT 
# 
function start_streaming 
{ 
    gst-launch-1.0 -ve videomixer name=mixer \ 
    ! x264enc \ 
    ! h264parse \ 
    ! rtph264pay config-interval=10 pt=96 \ 
    ! udpsink host=$UPLINK_HOST port=$PORT \ 
    v4l2src device=/dev/video0 \ 
    ! video/x-raw,format=AYUV,width=$WIDTH,height=$HEIGHT,framerate=$FPS/1 \ 
    ! mixer. 
} 

# Start streaming on both cameras simultaneously 
echo Image size: $WIDTH x $HEIGHT 
echo Frame rate: $FPS 
echo Starting cameras 0 and 1 streaming to $UPLINK_HOST:$PORT 
start_streaming 

# Wait until everything has finished 
wait 

exit 0 
# end 

Was ich bekomme ist die ziemlich nutzlos Nachricht:

WARNING: erroneous pipeline: could not link v4l2src0 to mixer 

ich fummelte habe über ziemlich viel und bekam nirgends - es ist wahrscheinlich etwas trivial, aber blowed, wenn ich es sehen kann !

Vielen Dank

Nick

Antwort

0

Ich denke, das Problem ist das gewählte Format ist. Sie verwenden den AYUV, während Ihre Kamera dies nicht unterstützt. Versuchen Sie, die AYUV durch I420 zu ersetzen.