» »

[ Gstreamer ] Zajem slike in zvoka s kamere

[ Gstreamer ] Zajem slike in zvoka s kamere

BigWhale ::

Greetings,

Z gst-launch bi rad zajel sliko in zvok iz USB kamere. Ce to pocnem s ffmpeg ali pa vlcjem stvar dela, vendar prihaja do raznoraznih problemov pri sinhronizaciji zvoka in slike. Rad bi probal se z gstreamerjem. Zajem zvoka deluje:

gst-launch alsasrc device=hw:1,0 ! audio/x-raw-int,channels=2,depth=16,rate=48000! audioconvert ! \
vorbisenc ! oggmux ! filesink location=test.ogg


Ogg file se lepo predvaja. Tudi zajem videa poteka brez tezav:

gst-launch v4l2src ! 'video/x-raw-yuv,width=640,height=480' ! queue ! avimux ! filesink location=test.avi


A, ko vse skupaj skombiniram pride do tezav. Video se odvrti s kaksnimi 1000fps:

gst-launch v4l2src ! 'video/x-raw-yuv,width=640,height=480,framerate=25/1' ! videorate ! \
video/x-raw-yuv,framerate=25/1 ! queue ! mux. alsasrc device=hw:1,0 ! audio/x-raw-int,rate=48000,channels=2,depth=16 ! \
queue ! lame ! queue ! mux. avimux name=mux ! filesink location=test.avi


Za 10s posnetka je kakih 180MB podatkov v .avi datoteki. Zvok se slisi normalno, le slika se odvrti z bliskovito hitrostjo.

Vsak namig dobrodosel. :)
  • spremenil: BigWhale ()

BigWhale ::

Se dodatne informacije: muxanje v ogg dela brez vecjih tezav:

gst-launch v4l2src ! 'video/x-raw-yuv,width=640,height=480,framerate=25/1' ! \
  ffmpegcolorspace ! tee name=t_vid ! queue ! xvimagesink sync=false t_vid. ! queue ! \
  videorate ! video/x-raw-yuv,framerate=25/1 ! theoraenc ! queue ! mux. alsasrc device=hw:1,0 ! \
  audio/x-raw-int,rate=48000,channels=2,depth=16 ! queue ! audioconvert ! queue ! \
  vorbisenc ! queue ! mux. oggmux name=mux ! filesink location=test.avi


Tole naredi cisto gledljiv ogg video, ki ima sinhorniziran zvok in sliko. Manjsi problem je nek garbage na zacetku, ki ga lahko odrezem in ne predstavlja neke hujse ovire. Vecji problem je pa to, da v oggmux plugin sprejem samo video/x-theora podatke.

Zgodovina sprememb…

  • spremenil: BigWhale ()

BigWhale ::

Torej, problem je bil lame. Dobesedno. :>

gst-launch v4l2src ! 'video/x-raw-yuv,width=640,height=480,framerate=25/1' ! queue ! videorate ! \
  video/x-raw-yuv,framerate=25/1 ! queue ! mux. alsasrc device=hw:1,0 ! \
  audio/x-raw-int,rate=48000,channels=2,depth=16 ! queue ! audioconvert ! \
  queue ! mux. avimux name=mux ! filesink location=test.avi


Tale vrstica zajame sliko iz kamere, zvok iz druge ALSA naprave, v tem primeru mikrofon na kameri in ju zmuxa v nekompresiran AVI file. Pozorno oko bralca bo opazilo, da ne uporabljam vec lame plugina. Seveda ne, saj ni potrebe, da bi zvok kakorkoli stiskal. Sicer ne vem zakaj je bil potem s sliko ampak, to so ze nepomembni detajli. :)

Hvala lepa za sodelovanje.

Zgodovina sprememb…

  • spremenil: BigWhale ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Photoshop CS4 in nov fotoaparat z svojim raw formatom

Oddelek: Programska oprema
5939 (824) opeter
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10318918 (9666) black ice
»

DLNA mreža za TV (PROGRAM)

Oddelek: Programska oprema
83805 (2951) radmannsdorf
»

Izbira Theore problematična za Mozillo? (strani: 1 2 )

Oddelek: Novice / Brskalniki
7728105 (26157) Icematxyz
»

[Naloga][Python] Vislice

Oddelek: Programiranje
113041 (2691) vice boy

Več podobnih tem