I have written a kenburns plugin
(http://en.wikipedia.org/wiki/Ken_burns_effect) that does smooth zooming/panning simultaneously. I have it committed in a git repo at https://github.com/dirjud/kenburns There are some gst-launch samples in the src/gstkenburns.c file. Currently I have only implemented nearest neighbor sampling, so it is fast but can show aliasing artifacts. Is this something that the developers would be interested in seeing integrated into gstreamer? Any feedback would be appreciated. Thanks, Lane ------------------------------------------------------------------------------ Gaining the trust of online customers is vital for the success of any company that requires sensitive data to be transmitted over the Web. Learn how to best implement a security strategy that keeps consumers' information secure and instills the confidence they need to proceed with transactions. http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Speaking for myself, I'm interested in an efficient, high-quality element that zooms, shifts, and crops. At least one of the sampling options should be a low-pass filter that can be used to do any interpolation, decimation, and phase-shifting in one pass. The number of taps should be selectable and either use an optimal filter or at least support some common window functions.
IMO, this is the hard part. Once you have it, then the Ken Burns Effect can be implemented via Dynamic Parameters (see Plugin Writer's Guide: Ch. 15). However, the benefit of making it a generic element is that you can also just use it as a fast, high-quality way to statically zoom and/or crop. Matt ________________________________ From: Lane Brooks [mailto:[hidden email]] Sent: Mon 1/10/2011 3:51 PM To: Discussion of the development of GStreamer Subject: [gst-devel] kenburns plugin I have written a kenburns plugin (http://en.wikipedia.org/wiki/Ken_burns_effect) that does smooth zooming/panning simultaneously. I have it committed in a git repo at https://github.com/dirjud/kenburns There are some gst-launch samples in the src/gstkenburns.c file. Currently I have only implemented nearest neighbor sampling, so it is fast but can show aliasing artifacts. Is this something that the developers would be interested in seeing integrated into gstreamer? Any feedback would be appreciated. Thanks, Lane ------------------------------------------------------------------------------ Gaining the trust of online customers is vital for the success of any company that requires sensitive data to be transmitted over the Web. Learn how to best implement a security strategy that keeps consumers' information secure and instills the confidence they need to proceed with transactions. http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel ------------------------------------------------------------------------------ Gaining the trust of online customers is vital for the success of any company that requires sensitive data to be transmitted over the Web. Learn how to best implement a security strategy that keeps consumers' information secure and instills the confidence they need to proceed with transactions. http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel winmail.dat (6K) Download Attachment |
In reply to this post by Lane Brooks
On 10.01.2011 22:51, Lane Brooks wrote:
> I have written a kenburns plugin > (http://en.wikipedia.org/wiki/Ken_burns_effect) that does smooth > zooming/panning simultaneously. > > I have it committed in a git repo at https://github.com/dirjud/kenburns > > There are some gst-launch samples in the src/gstkenburns.c file. Such a plugin would be welcome. Make a patch against gst-plugins-bad and put it to bugzilla. Add yourself to the copyright comment. > Currently I have only implemented nearest neighbor sampling, so it is > fast but can show aliasing artifacts. Yes, n-tap filtering would be nice to have, but thats no show-stopper for getting it into bad. Do you know about GstController? I would prefer to only have "zoom", "xcenter", "ycenter" properties, make then controllable and leave the animations to GstController. With that you get envelops and LFOs right now. Stefan > Is this something that the developers would be interested in seeing > integrated into gstreamer? > > Any feedback would be appreciated. > > Thanks, > Lane > > ------------------------------------------------------------------------------ > Gaining the trust of online customers is vital for the success of any company > that requires sensitive data to be transmitted over the Web. Learn how to > best implement a security strategy that keeps consumers' information secure > and instills the confidence they need to proceed with transactions. > http://p.sf.net/sfu/oracle-sfdevnl > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel ------------------------------------------------------------------------------ Protect Your Site and Customers from Malware Attacks Learn about various malware tactics and how to avoid them. Understand malware threats, the impact they can have on your business, and how you can protect your company and customers by using code signing. http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
On 01/12/2011 08:24 AM, Stefan Kost wrote:
> On 10.01.2011 22:51, Lane Brooks wrote: >> I have written a kenburns plugin >> (http://en.wikipedia.org/wiki/Ken_burns_effect) that does smooth >> zooming/panning simultaneously. >> >> I have it committed in a git repo at https://github.com/dirjud/kenburns >> >> There are some gst-launch samples in the src/gstkenburns.c file. > > Such a plugin would be welcome. Make a patch against gst-plugins-bad and > put it to bugzilla. Add yourself to the copyright comment. >> Currently I have only implemented nearest neighbor sampling, so it is >> fast but can show aliasing artifacts. > Yes, n-tap filtering would be nice to have, but thats no show-stopper > for getting it into bad. > > Do you know about GstController? I would prefer to only have "zoom", > "xcenter", "ycenter" properties, make then controllable and leave the > animations to GstController. With that you get envelops and LFOs right now. I do know about controllers and opted not to use them because of the complication I thought it would put on the user for anything other than the linear case. For example, I implemented an internal controller that ramps up the velocity linearly until it reaches a paramaterized time. It then holds the velocity constant until it reaches the parameter mirror at the end where it ramps the velocity back down. This gives a nice looking effect. It requires taking some time derivatives (converting velocity to position) and what not. I wanted to have nice movement options that did not require the user to do a lot of math. That said, not enabling external controllers does limit the functionality. For example, my current implementation only allows for one pan/zoom on a linear path. Using controllers, you could do curved paths or whatever. Let me play a little with the controllers to see if I can get similarly nice movement with them. Controllers would make it more generic, but I don't want to loose the ease of use. Actually, I just had another thought. Currently I have a few different user selectable internal controllers like the velocity ramping one described above. Would it work to add another option that lets the user select to use an external controller instead? Then for the simple use case, you just set "zoom1", "xcenter1", "ycenter1", "zoom2", "xcenter2", "ycenter2", and "duration". For the more advanced usage, you instead put a controller on "zoom1", "xcenter1", and "ycenter1" and select to disable the internal controller. Lane ------------------------------------------------------------------------------ Protect Your Site and Customers from Malware Attacks Learn about various malware tactics and how to avoid them. Understand malware threats, the impact they can have on your business, and how you can protect your company and customers by using code signing. http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
I'd recommend making a custom bin to encapsulate the full controls with
a set of simplified parameters. You could add a controller interface to kenburns, and then make a custom bin called kenburns_easy, for instance, that provides a simplified interface by using an internal controller. One example of this is rtspsrc, which is a bin. It encapsulates a lot of other elements that one can also use in a stand-alone fashion. Matt -----Original Message----- From: Lane Brooks [mailto:[hidden email]] Sent: Wednesday, January 12, 2011 18:49 To: Discussion of the development of GStreamer Subject: Re: [gst-devel] kenburns plugin On 01/12/2011 08:24 AM, Stefan Kost wrote: > On 10.01.2011 22:51, Lane Brooks wrote: <snip/> Actually, I just had another thought. Currently I have a few different user selectable internal controllers like the velocity ramping one described above. Would it work to add another option that lets the user select to use an external controller instead? Then for the simple use case, you just set "zoom1", "xcenter1", "ycenter1", "zoom2", "xcenter2", "ycenter2", and "duration". For the more advanced usage, you instead put a controller on "zoom1", "xcenter1", and "ycenter1" and select to disable the internal controller. Lane ------------------------------------------------------------------------------ Protect Your Site and Customers from Malware Attacks Learn about various malware tactics and how to avoid them. Understand malware threats, the impact they can have on your business, and how you can protect your company and customers by using code signing. http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Hi matt & Lane,
On 13.01.2011 08:27, Gruenke, Matt wrote: > I'd recommend making a custom bin to encapsulate the full controls with > a set of simplified parameters. You could add a controller interface to > kenburns, and then make a custom bin called kenburns_easy, for instance, > that provides a simplified interface by using an internal controller. > > One example of this is rtspsrc, which is a bin. It encapsulates a lot > of other elements that one can also use in a stand-alone fashion. > Not necessarily a bin, but yes. What about having a kenburns plugins with several elements, all sharing the same codebase. One can provide single controlable zoom, x/y-center props and the other has what you have now. Stefan > Matt > > > -----Original Message----- > From: Lane Brooks [mailto:[hidden email]] > Sent: Wednesday, January 12, 2011 18:49 > To: Discussion of the development of GStreamer > Subject: Re: [gst-devel] kenburns plugin > > On 01/12/2011 08:24 AM, Stefan Kost wrote: >> On 10.01.2011 22:51, Lane Brooks wrote: > <snip/> > > Actually, I just had another thought. Currently I have a few different > user selectable internal controllers like the velocity ramping one > described above. Would it work to add another option that lets the user > select to use an external controller instead? Then for the simple use > case, you just set "zoom1", "xcenter1", "ycenter1", "zoom2", "xcenter2", > > "ycenter2", and "duration". For the more advanced usage, you instead put > > a controller on "zoom1", "xcenter1", and "ycenter1" and select to > disable the internal controller. > > Lane > > ------------------------------------------------------------------------------ > Protect Your Site and Customers from Malware Attacks > Learn about various malware tactics and how to avoid them. Understand > malware threats, the impact they can have on your business, and how you > can protect your company and customers by using code signing. > http://p.sf.net/sfu/oracle-sfdevnl > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel ------------------------------------------------------------------------------ Protect Your Site and Customers from Malware Attacks Learn about various malware tactics and how to avoid them. Understand malware threats, the impact they can have on your business, and how you can protect your company and customers by using code signing. http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |