niedziela, 22 grudnia 2013

Przykładowa komenda do streamowania kamery USB przy pomocy VLC

Przed dokonaniem poniższych komend należy wykonać sudo chmod 777 /dev/video* [sudo adduser <myuser> video nie zadziała], aby łatwiej operowało się na plikach reprezentujących kamery (do sprawdzenia).

vlc -I dummy v4l2c:///dev/video2 --sout '#standard{access=http,mux=ogg,dst=:8080}'
add. kilka uwag:
fps=5 jest jeszcze nie zaimplementowane
--v4l2-color-killer nie daje efektu
chroma=mjpg do sprawdzenia

aby ustawić jakość na maksimum (jpeg) trzeba sprawdzić jakie możliwości daje nam kamera (źródło):
vlc@mini:~$ v4l2-ctl -d /dev/video1 -l

User Controls

                     brightness (int)    : min=0 max=255 step=1 default=128 value=128 flags=slider
                       contrast (int)    : min=0 max=255 step=1 default=128 value=128 flags=slider
                          gamma (int)    : min=1 max=6 step=1 default=3 value=3 flags=slider
                 gain_automatic (bool)   : default=1 value=1
           power_line_frequency (menu)   : min=0 max=2 default=0 value=0
                      sharpness (int)    : min=0 max=3 step=1 default=2 value=2 flags=slider

JPEG Compression Controls

            compression_quality (int)    : min=50 max=87 step=1 default=75 value=87

i, aby ustawić maksymalną jakość:
v4l2-ctl -d /dev/video1 --set-ctrl compression_quality=87 
add end.

Ciekawym zjawiskiem jest to, że przy takich ustawieniach dwie kamery [NGS Bullseye Twin] nie chcą się uruchomić (vlc na nic nie krzyczy, ale w dmesgu pojawiają się informacje typu:

gspca_zc3xx 2-1:1.0: alt 6 - bandwidth not wide enough, trying again
<3>ohci-pci 0000:00:0f.4: leak ed c6b32100 (#81) state 2
gspca_zc3xx 2-1:1.0: alt 5 - bandwidth not wide enough, trying again
ohci-pci 0000:00:0f.4: leak ed c6b32480 (#81) state 2
gspca_main: ISOC data error: [0] len=144, status=-70
Stanowi to niemały problem i wymaga dalszego badania. Obejściem tego problemu, w wypadku tych kamer może być wydanie komendy:
vlc -I dummy v4l2c:///dev/video1:width=320:height=240:chroma=mjpg:fps=5 --v4l2-color-killer --sout '#standard{access=http,mux=ts,dst=:8081}'
I tu dochodzimy do tego ciekawego momentu. Otóż, strumieniowanie działa, a w dmesgu nic niepokojącego się nie pojawia, a obraz i tak jest 640x480.

chroma=mjpg:fps=5 --v4l2-color-killer mogą być niepotrzebne

Brak komentarzy:

Prześlij komentarz