Re: [gentoo-user] [OT} GStreamer: How to view AND record a stream coming from an USB Webcam

2014-06-16 Thread meino . cramer
Canek Peláez Valdés can...@gmail.com [14-06-16 04:33]:
 On Sun, Jun 15, 2014 at 1:04 PM, Canek Peláez Valdés can...@gmail.com wrote:
  On Sun, Jun 15, 2014 at 12:54 PM,  meino.cra...@gmx.de wrote:
  Hi,
 
  After unsuccessfully trying vlc with a Logitech C920 HD Pro Webcam
  (over 2 seconds delay between audio and video). I played around
  with gstreamer and from bits and pieces from the web I build
  this line:
 
  gst-launch-1.0 v4l2src device=/dev/video1 ! 
  video/x-h264,width=1920,height=1080,framerate=30/1 ! \
  h264parse ! muxout. alsasrc device=hw:3,0 ! queue ! audioconvert ! 
  lamemp3enc ! \
  muxout. matroskamux name=muxout streamable=true ! filesink 
  location=c920.mp4
 
  which records a Full HD video with audio to my harddisc. The delay is
  minimal and the sync between audio and video is good.
 
  But there is one disadvantage:
  I cannot see what I am recording and I cannot watch the webcams stream
  before I fire up the script because otherwise the device would be already
  in use (I dont like scripts, which simply kill other applications when
  called).
 
  Any ideas or hints how to manage that?
 
  Use the tee element. I'm in a hurry, so I cannot test a pipeline right
  now, but I will try later. Meanwhile, just try to put a queue element
  after each path of the tee.
 
  gst-inspect-1.0 tee
 
 OK, it took me a bit of an effort, but this is my pipeline:
 
 gst-launch-1.0 v4l2src norm=NTSC device=/dev/video1 ! queue !
 deinterlace mode=1 ! videorate !
 video/x-raw,format=YV12,width=720,height=480,framerate=3/1001 !
 tee name=t t. ! queue ! videoconvert ! mpeg2enc ! avimux ! filesink
 location=file.avi t. ! queue ! videoconvert ! autovideosink
 
 My hardware is much more limited (analog RGB), so resolution and
 famerate are accordingly lower. This captures to an AVI file encoded
 to MPEG2 the video signal, and at the same time it opens a window to
 show the stream.
 
 It should not be that much of a problem to modify it to your needs;
 just notice that I didn't capture audio.
 
 Regards.
 -- 
 Canek Peláez Valdés
 Profesor de asignatura, Facultad de Ciencias
 Universidad Nacional Autónoma de México
 

Hi Canek,

Thanks a lot for your effort!!! 8)

Is there any documentation out there about this How to build 
a pipeline with gst-launch, which you would recommend to read?

I will see how I can map your example to my code I have already, which 
handles audio and video...

Best regards,
mcc










Re: [gentoo-user] [OT} GStreamer: How to view AND record a stream coming from an USB Webcam

2014-06-16 Thread Canek Peláez Valdés
On Mon, Jun 16, 2014 at 1:27 PM,  meino.cra...@gmx.de wrote:
 Canek Peláez Valdés can...@gmail.com [14-06-16 04:33]:
 On Sun, Jun 15, 2014 at 1:04 PM, Canek Peláez Valdés can...@gmail.com 
 wrote:
  On Sun, Jun 15, 2014 at 12:54 PM,  meino.cra...@gmx.de wrote:
  Hi,
 
  After unsuccessfully trying vlc with a Logitech C920 HD Pro Webcam
  (over 2 seconds delay between audio and video). I played around
  with gstreamer and from bits and pieces from the web I build
  this line:
 
  gst-launch-1.0 v4l2src device=/dev/video1 ! 
  video/x-h264,width=1920,height=1080,framerate=30/1 ! \
  h264parse ! muxout. alsasrc device=hw:3,0 ! queue ! audioconvert ! 
  lamemp3enc ! \
  muxout. matroskamux name=muxout streamable=true ! filesink 
  location=c920.mp4
 
  which records a Full HD video with audio to my harddisc. The delay is
  minimal and the sync between audio and video is good.
 
  But there is one disadvantage:
  I cannot see what I am recording and I cannot watch the webcams stream
  before I fire up the script because otherwise the device would be already
  in use (I dont like scripts, which simply kill other applications when
  called).
 
  Any ideas or hints how to manage that?
 
  Use the tee element. I'm in a hurry, so I cannot test a pipeline right
  now, but I will try later. Meanwhile, just try to put a queue element
  after each path of the tee.
 
  gst-inspect-1.0 tee

 OK, it took me a bit of an effort, but this is my pipeline:

 gst-launch-1.0 v4l2src norm=NTSC device=/dev/video1 ! queue !
 deinterlace mode=1 ! videorate !
 video/x-raw,format=YV12,width=720,height=480,framerate=3/1001 !
 tee name=t t. ! queue ! videoconvert ! mpeg2enc ! avimux ! filesink
 location=file.avi t. ! queue ! videoconvert ! autovideosink

 My hardware is much more limited (analog RGB), so resolution and
 famerate are accordingly lower. This captures to an AVI file encoded
 to MPEG2 the video signal, and at the same time it opens a window to
 show the stream.

 It should not be that much of a problem to modify it to your needs;
 just notice that I didn't capture audio.

 Regards.
 --
 Canek Peláez Valdés
 Profesor de asignatura, Facultad de Ciencias
 Universidad Nacional Autónoma de México


 Hi Canek,

 Thanks a lot for your effort!!! 8)

No problem; I have a little MP3 encoder that I use to handle my music
collection (along with other utilities) [1], and I was trying to do
some video analysis for another project I have, so I had the GStreamer
notions kinda fresh.

 Is there any documentation out there about this How to build
 a pipeline with gst-launch, which you would recommend to read?

GStreamer is a programmer's framework, and really gst-launch-1.0 is
just a test tool; however, GStreamer is so flexible and powerful, that
a lot of stuff can be done using the launcher and without a single
line of code written.

Having said that, IMNSHO the only way to really understand the
GStreamer pipelines is to read the developer's documentation[2];
specially when you need to use pads, although using the queue element
can solve that problem many times.

 I will see how I can map your example to my code I have already, which
 handles audio and video...

Good luck.

[1] https://github.com/canek-pelaez/mlm/blob/master/src/mlm-encoder.vala#L467
[2] 
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/index.html
-- 
Canek Peláez Valdés
Profesor de asignatura, Facultad de Ciencias
Universidad Nacional Autónoma de México



[gentoo-user] [OT} GStreamer: How to view AND record a stream coming from an USB Webcam

2014-06-15 Thread meino . cramer
Hi,

After unsuccessfully trying vlc with a Logitech C920 HD Pro Webcam 
(over 2 seconds delay between audio and video). I played around
with gstreamer and from bits and pieces from the web I build
this line:

gst-launch-1.0 v4l2src device=/dev/video1 ! 
video/x-h264,width=1920,height=1080,framerate=30/1 ! \
h264parse ! muxout. alsasrc device=hw:3,0 ! queue ! audioconvert ! 
lamemp3enc ! \ 
muxout. matroskamux name=muxout streamable=true ! filesink location=c920.mp4

which records a Full HD video with audio to my harddisc. The delay is
minimal and the sync between audio and video is good.

But there is one disadvantage:
I cannot see what I am recording and I cannot watch the webcams stream
before I fire up the script because otherwise the device would be already
in use (I dont like scripts, which simply kill other applications when
called).

Any ideas or hints how to manage that?

Thank you very much in advance for any help!
Best regards,
mcc









Re: [gentoo-user] [OT} GStreamer: How to view AND record a stream coming from an USB Webcam

2014-06-15 Thread Canek Peláez Valdés
On Sun, Jun 15, 2014 at 12:54 PM,  meino.cra...@gmx.de wrote:
 Hi,

 After unsuccessfully trying vlc with a Logitech C920 HD Pro Webcam
 (over 2 seconds delay between audio and video). I played around
 with gstreamer and from bits and pieces from the web I build
 this line:

 gst-launch-1.0 v4l2src device=/dev/video1 ! 
 video/x-h264,width=1920,height=1080,framerate=30/1 ! \
 h264parse ! muxout. alsasrc device=hw:3,0 ! queue ! audioconvert ! 
 lamemp3enc ! \
 muxout. matroskamux name=muxout streamable=true ! filesink 
 location=c920.mp4

 which records a Full HD video with audio to my harddisc. The delay is
 minimal and the sync between audio and video is good.

 But there is one disadvantage:
 I cannot see what I am recording and I cannot watch the webcams stream
 before I fire up the script because otherwise the device would be already
 in use (I dont like scripts, which simply kill other applications when
 called).

 Any ideas or hints how to manage that?

Use the tee element. I'm in a hurry, so I cannot test a pipeline right
now, but I will try later. Meanwhile, just try to put a queue element
after each path of the tee.

gst-inspect-1.0 tee

Regards.
-- 
Canek Peláez Valdés
Profesor de asignatura, Facultad de Ciencias
Universidad Nacional Autónoma de México



Re: [gentoo-user] [OT} GStreamer: How to view AND record a stream coming from an USB Webcam

2014-06-15 Thread Canek Peláez Valdés
On Sun, Jun 15, 2014 at 1:04 PM, Canek Peláez Valdés can...@gmail.com wrote:
 On Sun, Jun 15, 2014 at 12:54 PM,  meino.cra...@gmx.de wrote:
 Hi,

 After unsuccessfully trying vlc with a Logitech C920 HD Pro Webcam
 (over 2 seconds delay between audio and video). I played around
 with gstreamer and from bits and pieces from the web I build
 this line:

 gst-launch-1.0 v4l2src device=/dev/video1 ! 
 video/x-h264,width=1920,height=1080,framerate=30/1 ! \
 h264parse ! muxout. alsasrc device=hw:3,0 ! queue ! audioconvert ! 
 lamemp3enc ! \
 muxout. matroskamux name=muxout streamable=true ! filesink 
 location=c920.mp4

 which records a Full HD video with audio to my harddisc. The delay is
 minimal and the sync between audio and video is good.

 But there is one disadvantage:
 I cannot see what I am recording and I cannot watch the webcams stream
 before I fire up the script because otherwise the device would be already
 in use (I dont like scripts, which simply kill other applications when
 called).

 Any ideas or hints how to manage that?

 Use the tee element. I'm in a hurry, so I cannot test a pipeline right
 now, but I will try later. Meanwhile, just try to put a queue element
 after each path of the tee.

 gst-inspect-1.0 tee

OK, it took me a bit of an effort, but this is my pipeline:

gst-launch-1.0 v4l2src norm=NTSC device=/dev/video1 ! queue !
deinterlace mode=1 ! videorate !
video/x-raw,format=YV12,width=720,height=480,framerate=3/1001 !
tee name=t t. ! queue ! videoconvert ! mpeg2enc ! avimux ! filesink
location=file.avi t. ! queue ! videoconvert ! autovideosink

My hardware is much more limited (analog RGB), so resolution and
famerate are accordingly lower. This captures to an AVI file encoded
to MPEG2 the video signal, and at the same time it opens a window to
show the stream.

It should not be that much of a problem to modify it to your needs;
just notice that I didn't capture audio.

Regards.
-- 
Canek Peláez Valdés
Profesor de asignatura, Facultad de Ciencias
Universidad Nacional Autónoma de México