Re: [gentoo-user] [OT} GStreamer: How to view AND record a stream coming from an USB Webcam
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
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
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
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
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