reprogramming source

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

reprogramming source

GStreamer-devel mailing list
G’day

I have a capture card (sensoray 2263)

After setting the output to 1080 vlc and mplayer ‘reset’ the output to 720x576
Running mplayer like this
mplayer tv:///dev/video2 -geometry 1920x1080 keeps the card output at 1080 (but won’t set a 720x576 card to 1080)

Running my test pipeline

gst-launch-1.0 v4l2src name=source device=/dev/video2 ! queue ! videoscale ! video/x-raw,width=1920,height=1080 ! videoconvert ! xvimagesink force-aspect-ratio=false name=sink1

results in 720x576 weather or not I set the card to 1080.

Can anybody tell me how to tell gstreamer to ask/tell the card to output 1080?

Thanks
James
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: reprogramming source

GStreamer-devel mailing list


> On 22 Apr 2021, at 7:43 pm, James Linder via gstreamer-devel <[hidden email]> wrote:
>
> G’day
>
> I have a capture card (sensoray 2263)
>
> After setting the output to 1080 vlc and mplayer ‘reset’ the output to 720x576
> Running mplayer like this
> mplayer tv:///dev/video2 -geometry 1920x1080 keeps the card output at 1080 (but won’t set a 720x576 card to 1080)
>
> Running my test pipeline
>
> gst-launch-1.0 v4l2src name=source device=/dev/video2 ! queue ! videoscale ! video/x-raw,width=1920,height=1080 ! videoconvert ! xvimagesink force-aspect-ratio=false name=sink1
>
> results in 720x576 weather or not I set the card to 1080.
>
> Can anybody tell me how to tell gstreamer to ask/tell the card to output 1080?

Turns out CAPS are not passed back along the chain. Putting CAPS on the v4l2src means they are passed back to the card. In my example pipeline moving CAPS back to the src solved the issue.

James
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

video jitter

GStreamer-devel mailing list
In reply to this post by GStreamer-devel mailing list
G’day

I am (trying out) creating a pipeline to view in 1080

gst-launch-1.0 -v -e  v4l2src name=source device=/dev/video2 ! \
            video/x-h264,width=1920,height=1080,framerate=30/1 ! \
            h264parse ! avdec_h264 ! \
            xvimagesink

I have tried a queue throught the chain without seeing any change.
htop shows 4 cores at 30ish %.

using mplayer directly on the source shows 4 cores at 60ish % with absolutely smooth playback.
-v says nothing that grabs attention.

Can anybody say ah-ha do this-or-that?
Thanks
James
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: video jitter

GStreamer-devel mailing list
Le vendredi 23 avril 2021 à 16:47 +0800, James Linder via gstreamer-devel a
écrit :
> G’day
>
> I am (trying out) creating a pipeline to view in 1080
>
> gst-launch-1.0 -v -e  v4l2src name=source device=/dev/video2 ! \
>             video/x-h264,width=1920,height=1080,framerate=30/1 ! \
>             h264parse ! avdec_h264 ! \

If you mimic playbin3, you'd add a queue between h264parse and avec_h264, that
will avoid loosing frames in v4l2src live source. Please compare against:

gst-play-1.0 --use-playbin3 v4l2:///dev/video2

>             xvimagesink

XV may or may not be the best option for displaying your stream. This entirely
depend on the platform, the OS and the display environment you are using.

>
> I have tried a queue throught the chain without seeing any change.
> htop shows 4 cores at 30ish %.
>
> using mplayer directly on the source shows 4 cores at 60ish % with absolutely smooth playback.
> -v says nothing that grabs attention.
>
> Can anybody say ah-ha do this-or-that?
> Thanks
> James
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

The swamp

GStreamer-devel mailing list
In reply to this post by GStreamer-devel mailing list
Like a real swamp I can see for kilometers, but round my feet is sticky.

I’m testing this pipeline (it works beautifully)

gst-launch-1.0 -t v4l2src name=source device=/dev/video2 ! \
            video/x-h264,width=1920,height=1080,framerate=30/1 ! \
            h264parse ! queue ! avdec_h264 ! \
            autovideosink

I’ve done lots of reading, can see how to encode h264 from raw at a nominated bit rate.
My camera gives h264. (USB2 speed limit for 1080P)

I want to save the output.
Is the bit rate set by the camera, I do not need to concern myself?
Should/could I set bit rate in my pipeline. I presume that before h264parse I’d pipe to

mp4mux ! filesink location=myfile.mp4

Thanks
James

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

more questions

GStreamer-devel mailing list
Learning but still lots to go.

I have a test pipeline

gst-launch-1.0 -t v4l2src name=source device=/dev/video2 ! \
            video/x-h264,width=1920,height=1080,framerate=30/1 ! \
            h264parse ! queue ! avdec_h264 ! \
            autovideosink


I coded that as

        pipeline = gst_parse_launch ("v4l2src name=source ! "
            "video/x-h264,width=1920,height=1080,framerate=30/1 ! "
            "h264parse ! queue ! avdec_h264 ! autovideosink", NULL);

The two do not yield the same result, in particular the gst-launch does feedback 1920x1080 to the card.
The compiled code does not, so the card stays in its native 720x576 resolution.

What and why


says -o file, but that option does not exist. How can I find what parse did to make a pipeline
thanks
James


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: more questions

GStreamer-devel mailing list
On Sat, 2021-04-24 at 15:18 +0800, James via gstreamer-devel wrote:

Hi,

> Learning but still lots to go.
>
> I have a test pipeline
>
> gst-launch-1.0 -t v4l2src name=source device=/dev/video2 ! \
>             video/x-h264,width=1920,height=1080,framerate=30/1 ! \
>             h264parse ! queue ! avdec_h264 ! \
>             autovideosink
>
>
> I coded that as
>
>         pipeline = gst_parse_launch ("v4l2src name=source ! "
>             "video/x-h264,width=1920,height=1080,framerate=30/1 ! "
>             "h264parse ! queue ! avdec_h264 ! autovideosink", NULL);
>
> The two do not yield the same result, in particular the gst-launch
> does feedback 1920x1080 to the card.
> The compiled code does not, so the card stays in its native 720x576
> resolution.
>
> What and why
>
> https://gstreamer.freedesktop.org/documentation/tools/gst-
> launch.html?gi-language=c
>
> says -o file, but that option does not exist. How can I find what
> parse did to make a pipeline

gst-launch uses gst_parse_launch() so it should behave the same.

Your gst-launch pipeline has an additional device=/dev/video2 though?

Cheers
 Tim


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: more questions

GStreamer-devel mailing list


On 24 Apr 2021, at 5:16 pm, Tim-Philipp Müller via gstreamer-devel <[hidden email]> wrote:

On Sat, 2021-04-24 at 15:18 +0800, James via gstreamer-devel wrote:

Hi,

Learning but still lots to go.

I have a test pipeline

gst-launch-1.0 -t v4l2src name=source device=/dev/video2 ! \
            video/x-h264,width=1920,height=1080,framerate=30/1 ! \
            h264parse ! queue ! avdec_h264 ! \
            autovideosink


I coded that as

        pipeline = gst_parse_launch ("v4l2src name=source ! "
            "video/x-h264,width=1920,height=1080,framerate=30/1 ! "
            "h264parse ! queue ! avdec_h264 ! autovideosink", NULL);

The two do not yield the same result, in particular the gst-launch
does feedback 1920x1080 to the card.
The compiled code does not, so the card stays in its native 720x576
resolution.

What and why

https://gstreamer.freedesktop.org/documentation/tools/gst-
launch.html?gi-language=c

says -o file, but that option does not exist. How can I find what
parse did to make a pipeline

gst-launch uses gst_parse_launch() so it should behave the same.

Your gst-launch pipeline has an additional device=/dev/video2 though?

Tim ta

       g_object_set (source, "device", argv[1], NULL);


but in particular gst-launch passes the resolution back to the card, the compiled pipeline does not.
gst-launch does that too (not pass back) if the CAPS are further down the line, ie other elements do not pass caps back. 
So if parse-launch () does not do it correctly what does parse-launch () actuallly do (read the source, Luke)  but how to see the pipeline that it makes. Maybe spelunking -v

James

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: The swamp

GStreamer-devel mailing list
In reply to this post by GStreamer-devel mailing list


Le sam. 24 avr. 2021 00 h 30, James Linder via gstreamer-devel <[hidden email]> a écrit :
Like a real swamp I can see for kilometers, but round my feet is sticky.

I’m testing this pipeline (it works beautifully)

gst-launch-1.0 -t v4l2src name=source device=/dev/video2 ! \
            video/x-h264,width=1920,height=1080,framerate=30/1 ! \
            h264parse ! queue ! avdec_h264 ! \
            autovideosink

I’ve done lots of reading, can see how to encode h264 from raw at a nominated bit rate.
My camera gives h264. (USB2 speed limit for 1080P)

I want to save the output.
Is the bit rate set by the camera, I do not need to concern myself?

If you are satisfied with the resulting stream size and visual quality no. Note that usb/Uvc h264 support is not well standardized. But we have an element uvch264src (hopefully I got the same right) that works with few models following Logitech way. This element will give you extra control, long with a raw / viewport feed.

Should/could I set bit rate in my pipeline. I presume that before h264parse I’d pipe to

mp4mux ! filesink location=myfile.mp4

In theory, this should work, don't forget to send Eos at the end, otherwise the resulting MP4 will be corrupted.


Thanks
James
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

h264

GStreamer-devel mailing list
In reply to this post by GStreamer-devel mailing list
Guys I have a card producing h264 video (Sensoray 2263)
I would like to view and record output in 1080.
Despite lots of fiddlimg and trying I have not suceeded, so if any body can offer words of wisdom then tnanks.

The video stutters and tears.

The recording yields a file that

mplayer plays with tears
vlc shows s creen of video, then a screen of green, repeats
shotcut, avidemux and handbrake will not open the file.

Using the pipeline, compiled, and an image sixe of 720x576 works without any problen

(settings the CAPS feeds the size back to the cards, so that is an easy way to check)

Here is my pipeline

gst-launch-1.0 v4l2src name=source device=/dev/video2 ! \
            video/x-h264,width=1920,height=1080,framerate=30/1 ! \
            tee name=t \
            t. ! h264parse ! queue ! avdec_h264 ! autovideosink \
            t. ! h264parse ! mp4mux ! filesink location=myfile.mp4 sync=true

Thanks
James
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: h264

GStreamer-devel mailing list
I wonder if this has to do with how the buffers are timestamped. For the pipeline you shared, and given that it is a live source, you should be able to try setting sync=false on both sink elements and see if it makes any difference.

> On 9 May 2021, at 03:17, James via gstreamer-devel <[hidden email]> wrote:
>
> Guys I have a card producing h264 video (Sensoray 2263)
> I would like to view and record output in 1080.
> Despite lots of fiddlimg and trying I have not suceeded, so if any body can offer words of wisdom then tnanks.
>
> The video stutters and tears.
>
> The recording yields a file that
>
> mplayer plays with tears
> vlc shows s creen of video, then a screen of green, repeats
> shotcut, avidemux and handbrake will not open the file.
>
> Using the pipeline, compiled, and an image sixe of 720x576 works without any problen
>
> (settings the CAPS feeds the size back to the cards, so that is an easy way to check)
>
> Here is my pipeline
>
> gst-launch-1.0 v4l2src name=source device=/dev/video2 ! \
>            video/x-h264,width=1920,height=1080,framerate=30/1 ! \
>            tee name=t \
>            t. ! h264parse ! queue ! avdec_h264 ! autovideosink \
>        t. ! h264parse ! mp4mux ! filesink location=myfile.mp4 sync=true
>
> Thanks
> James
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

stop pipeline

GStreamer-devel mailing list
In reply to this post by GStreamer-devel mailing list
Hi
I have a programmed pipeline. Stopping seems not straightforward so any hints gratefully accepted.

I send SIGTERM to the process
The handler sends EOS to the pipeline
I wait for EOS message
I then complete the SIGTERM

It seems to me I should
Send EOS to the pipeline
Stop the pipeline (or vice verse)
Then wait for message and exit

Thanks
James

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

pipeline overflow

GStreamer-devel mailing list
I’d really like  a clue

my test pipeline looks like this

#!/bin/sh
# <space> not ! are significant
gst-launch-1.0 -v -e v4l2src name=source device=/dev/video2 ! \
            video/x-h264,width=1920,height=1080,framerate=30/1 ! \
            h264parse ! mp4mux name=mux ! filesink location=myfile.mp4 \
            pulsesrc device=alsa_input.usb-Sensoray_Co.__Inc._Sensoray_Model_2263_551645-04.analog-stereo ! lamemp3enc ! queue ! mux.

Video and audio are recorded pefectly for 30sec or so the audio drops and messages about n-thousand frames dropped and downstream is too slow to consume the data. Moving the queue about has little effect (affects time until drop). I dont understand please.
htop shows 4 cores at about 50%

James
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel