Ho una webcam logitech C920. Ha la capacità di codificare direttamente il video in H264.
Voglio riprodurre ciò che è stato fatto con un Beaglebone, ma usando un Raspberry Pi: inviare un flusso H264 alla rete . Il Raspberry Pi è quindi solo qui per impacchettare lo stream in RTP, la compressione video viene effettuata dalla webcam stessa. La modalità H264 è imposta usando video4linux.
Finora, e se uso un computer comune con l'ultima versione di Ubuntu, funziona usando VLC come server o GStreamer. Ad esempio, se lancio su Raspberry Pi un server VLC usando il comando:
cvlc --sout=#rtp{sdp=rtsp://:8554/test} 'v4l2:///dev/video0:chroma=H264:width=800:height=600:fps=30'
... e poi se leggo il flusso con VLC su un altro computer, va bene.
Tuttavia, se uso Raspberry Pi per inviare lo streaming video, il risultato è piuttosto scarso. Molta immondizia nell'immagine non appena qualcosa si muove. I tasti immagine vengono ben ricevuti ogni 10 secondi, ma nel frattempo non sono abbastanza buoni rispetto al flusso da un computer comune.
Ho anche provato il metodo descritto per il beaglebone con l' utility "cattura" fornita : ok se eseguo lo streaming da un computer reale, lo stesso problema di immondizia se eseguo lo streaming da un Raspberry Pi.
Non è un problema di rete: ho fatto alcuni controlli di rete con Wireshark e le statistiche di VLC, non ho perdita di pacchetti. Ho provato con Raspbian e Arch Linux per Raspi (gstreamer 0.10 in raspbian, gstreamer 1.0 in Arch Linux).
Non so se sia rilevante o meno, ma ho anche testato con la versione di supporto float di Raspbian. Per poter usare un kernel 3.2 è necessario prima un aggiornamento; ma stesso problema, il video ha dei rifiuti.
Qualche idea su cosa potrei fare per migliorare la qualità del video?