On Mon, Jun 16, 2014 at 1:27 PM,  <[email protected]> wrote:
> Canek Peláez Valdés <[email protected]> [14-06-16 04:33]:
>> On Sun, Jun 15, 2014 at 1:04 PM, Canek Peláez Valdés <[email protected]> 
>> wrote:
>> > On Sun, Jun 15, 2014 at 12:54 PM,  <[email protected]> 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=30000/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

Reply via email to