Seek and playback of multiple low resolution videos

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

Seek and playback of multiple low resolution videos

jackson80
Greetings,

I have two applications. One will create a long command string to capture 9 videos simultaneously using ffmpeg, encoding with vp9.. Five of the videos are 800x480 and the other four are 1280x960. My other application is a greatly modified version of the tutorial https://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/tree/gst-sdk/tutorials/basic-tutorial-5.c. I have modified it to play all nine videos at once. They all play well together except when I drag the seek bar. When I drag the seek bar, it takes a very long time for all the videos to be updated to the same position, and when it is finished, the videos are out of sync. I have timestamps embedded in the videos to observe this detail. Also, by observing the system monitor resources, all the cpus are at 100% while the seek is being performed.
Now, I can do the same thing with nine 1920x1080 videos that are encoded with h264 and the resources are not totally consumed nor does it take a long time to update.
Is this a problem with using these low resolution videos encoded with vp9?  Since this occurs during a seek, I did not think hardware acceleration for vp9 would be of any help. I have not yet tried encoding the lower resolution videos with h264 as from the capture side, that process takes a lot resources.
This is with Centos 7, GStreamer version 1.8.3.
Thanks,
Jack

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

Re: Seek and playback of multiple low resolution videos

Sebastian Dröge-3
On Tue, 2016-11-01 at 13:46 -0700, Jack D wrote:

> Greetings,
>
> I have two applications. One will create a long command string to
> capture 9 videos simultaneously using ffmpeg, encoding with vp9..
> Five of the videos are 800x480 and the other four are 1280x960. My
> other application is a greatly modified version of the tutorial https
> ://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/tree/gst-
> sdk/tutorials/basic-tutorial-5.c. I have modified it to play all nine
> videos at once. They all play well together except when I drag the
> seek bar. When I drag the seek bar, it takes a very long time for all
> the videos to be updated to the same position, and when it is
> finished, the videos are out of sync. I have timestamps embedded in
> the videos to observe this detail. Also, by observing the system
> monitor resources, all the cpus are at 100% while the seek is being
> performed.
> Now, I can do the same thing with nine 1920x1080 videos that are
> encoded with h264 and the resources are not totally consumed nor does
> it take a long time to update.
> Is this a problem with using these low resolution videos encoded with
> vp9?
Are all videos inside the same pipeline? If so, synchronization should
at least be kept intact, independent of everything else. Can you
provide a testcase for this (including videos) to reproduce the
problem?

For the performance problem, please check with a tool like perf where
the actual bottleneck here is.

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (949 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Seek and playback of multiple low resolution videos

jackson80
The videos are in 9 different pipelines. If I have 9 videos from nine different sources, how could I put it into a single pipeline?

What is the procedure to provide a testcase? I don't have a public repository where I may leave the code and videos. 

I had never used perf before yesterday and it is proving to have a steep learning curve. But I will continue to pursue it.

On Wed, Nov 2, 2016 at 1:09 AM, Sebastian Dröge <[hidden email]> wrote:
On Tue, 2016-11-01 at 13:46 -0700, Jack D wrote:
> Greetings,
>
> I have two applications. One will create a long command string to
> capture 9 videos simultaneously using ffmpeg, encoding with vp9..
> Five of the videos are 800x480 and the other four are 1280x960. My
> other application is a greatly modified version of the tutorial https
> ://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/tree/gst-
> sdk/tutorials/basic-tutorial-5.c. I have modified it to play all nine
> videos at once. They all play well together except when I drag the
> seek bar. When I drag the seek bar, it takes a very long time for all
> the videos to be updated to the same position, and when it is
> finished, the videos are out of sync. I have timestamps embedded in
> the videos to observe this detail. Also, by observing the system
> monitor resources, all the cpus are at 100% while the seek is being
> performed.
> Now, I can do the same thing with nine 1920x1080 videos that are
> encoded with h264 and the resources are not totally consumed nor does
> it take a long time to update.
> Is this a problem with using these low resolution videos encoded with
> vp9?

Are all videos inside the same pipeline? If so, synchronization should
at least be kept intact, independent of everything else. Can you
provide a testcase for this (including videos) to reproduce the
problem?

For the performance problem, please check with a tool like perf where
the actual bottleneck here is.

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com

_______________________________________________
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
|

Re: Seek and playback of multiple low resolution videos

jackson80
In reply to this post by jackson80
Okay, I figured out I need to set up something on Github. I'll post when I have uploaded the code and videos . 



Sent from my Verizon 4G LTE smartphone


-------- Original message --------
From: Sebastian Dröge <[hidden email]>
Date: 11/2/16 1:09 AM (GMT-07:00)
To: Discussion of the development of and with GStreamer <[hidden email]>
Subject: Re: Seek and playback of multiple low resolution videos

_______________________________________________
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
|

Re: Seek and playback of multiple low resolution videos

jackson80
My code, makefile and videos are located in github.com/jackson80/vidplay
These are nine videos that are 5 minutes long. Five are 800x480 and four are 1280x960.

On Thu, Nov 3, 2016 at 9:34 AM, jack <[hidden email]> wrote:
Okay, I figured out I need to set up something on Github. I'll post when I have uploaded the code and videos . 



Sent from my Verizon 4G LTE smartphone


-------- Original message --------
From: Sebastian Dröge <[hidden email]>
Date: 11/2/16 1:09 AM (GMT-07:00)
To: Discussion of the development of and with GStreamer <[hidden email]>
Subject: Re: Seek and playback of multiple low resolution videos

_______________________________________________
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
|

Re: Seek and playback of multiple low resolution videos

Sebastian Dröge-3
In reply to this post by jackson80
On Thu, 2016-11-03 at 07:03 -0700, Jack D wrote:
> The videos are in 9 different pipelines. If I have 9 videos from nine
> different sources, how could I put it into a single pipeline?

You create one GstPipeline and put all your separate pipelines that you
currently have in that. It's also possible to achieve synchronization
between different pipelines, but that requires some manual work,
basically the same as if the pipelines would run on different machines.

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (949 bytes) Download Attachment