Hello all,
I am trying to use gstreamer to stream video (sort of) from a HTTP source that serves individual JPEG images. This is not a MJPEG stream -- instead, a new HTTP request is required for each frame that is to be retrieved. This pipeline works for MJPEG: gst-launch souphttpsrc location=http://user:pass@hostname/path ! jpegdec ! xvimagesink If I try to use the same pipeline for an HTTP source that serves individual JPEG images, only one image is shown (since the HTTP response actually contains just one single image). Is there any way to have souphttpsrc make additional requests periodically from the specified location? Is there any other way to achieve this? Thanks, GRodriguez ------------------------------------------------------------------------------ Learn how Oracle Real Application Clusters (RAC) One Node allows customers to consolidate database storage, standardize their database environment, and, should the need arise, upgrade to a full multi-node Oracle RAC database without downtime or disruption http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Am 03.01.2011 12:38, schrieb Guillermo Rodriguez Garcia:
> Hello all, > > I am trying to use gstreamer to stream video (sort of) from a HTTP source > that serves individual JPEG images. This is not a MJPEG stream -- instead, > a new HTTP request is required for each frame that is to be retrieved. > > This pipeline works for MJPEG: > > gst-launch souphttpsrc location=http://user:pass@hostname/path ! jpegdec ! xvimagesink > > If I try to use the same pipeline for an HTTP source that serves individual > JPEG images, only one image is shown (since the HTTP response actually > contains just one single image). gst-launch souphttpsrc location=http://user:pass@hostname/path ! multipartdemux ! jpegdec ! xvimagesink Stefan > > Is there any way to have souphttpsrc make additional requests periodically > from the specified location? > > Is there any other way to achieve this? > > Thanks, > > GRodriguez > > > ------------------------------------------------------------------------------ > Learn how Oracle Real Application Clusters (RAC) One Node allows customers > to consolidate database storage, standardize their database environment, and, > should the need arise, upgrade to a full multi-node Oracle RAC database > without downtime or disruption > 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 |
Hello Stefan,
El 08/01/2011 12:16, Stefan Kost escribió: > Am 03.01.2011 12:38, schrieb Guillermo Rodriguez Garcia: >> Hello all, >> >> I am trying to use gstreamer to stream video (sort of) from a HTTP source >> that serves individual JPEG images. This is not a MJPEG stream -- instead, >> a new HTTP request is required for each frame that is to be retrieved. >> >> This pipeline works for MJPEG: >> >> gst-launch souphttpsrc location=http://user:pass@hostname/path ! jpegdec ! xvimagesink >> >> If I try to use the same pipeline for an HTTP source that serves individual >> JPEG images, only one image is shown (since the HTTP response actually >> contains just one single image). > > gst-launch souphttpsrc location=http://user:pass@hostname/path ! multipartdemux > ! jpegdec ! xvimagesink Thanks for your answer. This pipeline does work for MJPEG (just like the one I provided above), but does not solve the problem. I don't have an MJPEG stream. What I have is a HTTP source that serves individual JPEG images (one single JPEG image per HTTP request). What I actually need is a way to have souphttpsrc (or another HTTP src) make additional HTTP requests periodically from the same URL. Is this possible? If not, can anyone suggest how this could be implemented? Thanks, G Rodriguez ------------------------------------------------------------------------------ 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 |
Maybe you should request the frames manually and use appsrc to push
jpeg images as buffers into a decoding pipeline. On Mon, Jan 10, 2011 at 10:23 AM, <[hidden email]> wrote: > Hello Stefan, > > El 08/01/2011 12:16, Stefan Kost escribió: >> Am 03.01.2011 12:38, schrieb Guillermo Rodriguez Garcia: >>> Hello all, >>> >>> I am trying to use gstreamer to stream video (sort of) from a HTTP source >>> that serves individual JPEG images. This is not a MJPEG stream -- instead, >>> a new HTTP request is required for each frame that is to be retrieved. >>> >>> This pipeline works for MJPEG: >>> >>> gst-launch souphttpsrc location=http://user:pass@hostname/path ! jpegdec ! xvimagesink >>> >>> If I try to use the same pipeline for an HTTP source that serves individual >>> JPEG images, only one image is shown (since the HTTP response actually >>> contains just one single image). >> >> gst-launch souphttpsrc location=http://user:pass@hostname/path ! multipartdemux >> ! jpegdec ! xvimagesink > > Thanks for your answer. This pipeline does work for MJPEG (just like > the one I provided above), but does not solve the problem. > > I don't have an MJPEG stream. What I have is a HTTP source that serves > individual JPEG images (one single JPEG image per HTTP request). What > I actually need is a way to have souphttpsrc (or another HTTP src) make > additional HTTP requests periodically from the same URL. Is this > possible? If not, can anyone suggest how this could be implemented? > > Thanks, > > G Rodriguez > > ------------------------------------------------------------------------------ > 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 |
In reply to this post by Guillermo Rodriguez Garcia
On Monday 03 January 2011 11:38:09, Guillermo Rodriguez Garcia wrote: > I am trying to use gstreamer to stream video (sort of) from a HTTP source > that serves individual JPEG images. This is not a MJPEG stream -- instead, > a new HTTP request is required for each frame that is to be retrieved. You'd need to modify souphttpsrc to support this. We wouldn't want to have the souphttpsrc element reconnect by default after the video ends, of course, so it should be indicated with a property. Implementing this is unfortunately non-trivial, because of the multithread behaviour of souphttpsrc. In the gst_soup_http_src_got_body_cb() and gst_soup_http_src_finished_cb(), you need to re-send the message rather than sending EOS. You can try to set src->read_position to 0 and src->retry to TRUE, but I'm afraid it won't be that simple... Regards, Arnout -- Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 31BB CF53 8660 6F88 345D 54CC A836 5879 20D7 CF43 ------------------------------------------------------------------------------ Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by Guillermo Rodriguez Garcia
For those sources I would suggest to periodically set the pipeline to
NULL when you get an EOS event. When you want to get a new image, set it back to PLAYING, and then you repeat this. Wim On Mon, Jan 3, 2011 at 11:38 AM, Guillermo Rodriguez Garcia <[hidden email]> wrote: > Hello all, > > I am trying to use gstreamer to stream video (sort of) from a HTTP source > that serves individual JPEG images. This is not a MJPEG stream -- instead, > a new HTTP request is required for each frame that is to be retrieved. > > This pipeline works for MJPEG: > > gst-launch souphttpsrc location=http://user:pass@hostname/path ! jpegdec ! xvimagesink > > If I try to use the same pipeline for an HTTP source that serves individual > JPEG images, only one image is shown (since the HTTP response actually > contains just one single image). > > Is there any way to have souphttpsrc make additional requests periodically > from the specified location? > > Is there any other way to achieve this? > > Thanks, > > GRodriguez > > > ------------------------------------------------------------------------------ > Learn how Oracle Real Application Clusters (RAC) One Node allows customers > to consolidate database storage, standardize their database environment, and, > should the need arise, upgrade to a full multi-node Oracle RAC database > without downtime or disruption > http://p.sf.net/sfu/oracle-sfdevnl > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel > ------------------------------------------------------------------------------ Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Good idea, but wouldn't that wreak havoc on the output file in case it's a filesink instead of an xvimagesink? Regards, Arnout On Saturday 22 January 2011 21:55:18, Wim Taymans wrote: > For those sources I would suggest to periodically set the pipeline to > NULL when you > get an EOS event. When you want to get a new image, set it back to PLAYING, > and then you repeat this. > > Wim > > On Mon, Jan 3, 2011 at 11:38 AM, Guillermo Rodriguez Garcia > > <[hidden email]> wrote: > > Hello all, > > > > I am trying to use gstreamer to stream video (sort of) from a HTTP source > > that serves individual JPEG images. This is not a MJPEG stream -- > > instead, a new HTTP request is required for each frame that is to be > > retrieved. > > > > This pipeline works for MJPEG: > > > > gst-launch souphttpsrc location=http://user:pass@hostname/path ! jpegdec > > ! xvimagesink > > > > If I try to use the same pipeline for an HTTP source that serves > > individual JPEG images, only one image is shown (since the HTTP response > > actually contains just one single image). > > > > Is there any way to have souphttpsrc make additional requests > > periodically from the specified location? > > > > Is there any other way to achieve this? > > > > Thanks, > > > > GRodriguez > > > > > > ------------------------------------------------------------------------- > > ----- Learn how Oracle Real Application Clusters (RAC) One Node allows > > customers to consolidate database storage, standardize their database > > environment, and, should the need arise, upgrade to a full multi-node > > Oracle RAC database without downtime or disruption > > http://p.sf.net/sfu/oracle-sfdevnl > > _______________________________________________ > > gstreamer-devel mailing list > > [hidden email] > > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel > > --------------------------------------------------------------------------- > --- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! > Finally, a world-class log management solution at an even better > price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires > February 28th, so secure your free ArcSight Logger TODAY! > http://p.sf.net/sfu/arcsight-sfd2d > _______________________________________________ > gstreamer-devel mailing list > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel -- Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 31BB CF53 8660 6F88 345D 54CC A836 5879 20D7 CF43 ------------------------------------------------------------------------------ Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
I think the file would just be overwritten with new contents because
the filesink would reopen (not in append mode) the file. Wim On Sat, Jan 22, 2011 at 10:00 PM, Arnout Vandecappelle <[hidden email]> wrote: > Good idea, but wouldn't that wreak havoc on the output file in case it's a > filesink instead of an xvimagesink? > > Regards, > > Arnout > > On Saturday 22 January 2011 21:55:18, Wim Taymans wrote: > >> For those sources I would suggest to periodically set the pipeline to > >> NULL when you > >> get an EOS event. When you want to get a new image, set it back to >> PLAYING, > >> and then you repeat this. > >> > >> Wim > >> > >> On Mon, Jan 3, 2011 at 11:38 AM, Guillermo Rodriguez Garcia > >> > >> <[hidden email]> wrote: > >> > Hello all, > >> > > >> > I am trying to use gstreamer to stream video (sort of) from a HTTP >> > source > >> > that serves individual JPEG images. This is not a MJPEG stream -- > >> > instead, a new HTTP request is required for each frame that is to be > >> > retrieved. > >> > > >> > This pipeline works for MJPEG: > >> > > >> > gst-launch souphttpsrc location=http://user:pass@hostname/path ! jpegdec > >> > ! xvimagesink > >> > > >> > If I try to use the same pipeline for an HTTP source that serves > >> > individual JPEG images, only one image is shown (since the HTTP response > >> > actually contains just one single image). > >> > > >> > Is there any way to have souphttpsrc make additional requests > >> > periodically from the specified location? > >> > > >> > Is there any other way to achieve this? > >> > > >> > Thanks, > >> > > >> > GRodriguez > >> > > >> > > >> > >> > ------------------------------------------------------------------------- > >> > ----- Learn how Oracle Real Application Clusters (RAC) One Node allows > >> > customers to consolidate database storage, standardize their database > >> > environment, and, should the need arise, upgrade to a full multi-node > >> > Oracle RAC database without downtime or disruption > >> > http://p.sf.net/sfu/oracle-sfdevnl > >> > _______________________________________________ > >> > gstreamer-devel mailing list > >> > [hidden email] > >> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel > >> > >> >> --------------------------------------------------------------------------- > >> --- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! > >> Finally, a world-class log management solution at an even better > >> price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires > >> February 28th, so secure your free ArcSight Logger TODAY! > >> http://p.sf.net/sfu/arcsight-sfd2d > >> _______________________________________________ > >> gstreamer-devel mailing list > >> [hidden email] > >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel > > -- > > Arnout Vandecappelle arnout at mind be > > Senior Embedded Software Architect +32-16-286540 > > Essensium/Mind http://www.mind.be > > G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven > > LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle > > GPG fingerprint: 31BB CF53 8660 6F88 345D 54CC A836 5879 20D7 CF43 > > ------------------------------------------------------------------------------ > Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! > Finally, a world-class log management solution at an even better price-free! > Download using promo code Free_Logger_4_Dev2Dev. Offer expires > February 28th, so secure your free ArcSight Logger TODAY! > http://p.sf.net/sfu/arcsight-sfd2d > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel > > ------------------------------------------------------------------------------ Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
You could also wrap the source and decoder in a bin, patch up a buffer
timestamp, catch the EOS event, set things to NULL internally and schedule a timeout for the next frame. You could then more easily mux things. Wim On Sat, Jan 22, 2011 at 10:04 PM, Wim Taymans <[hidden email]> wrote: > I think the file would just be overwritten with new contents because > the filesink > would reopen (not in append mode) the file. > > Wim > > On Sat, Jan 22, 2011 at 10:00 PM, Arnout Vandecappelle <[hidden email]> wrote: >> Good idea, but wouldn't that wreak havoc on the output file in case it's a >> filesink instead of an xvimagesink? >> >> Regards, >> >> Arnout >> >> On Saturday 22 January 2011 21:55:18, Wim Taymans wrote: >> >>> For those sources I would suggest to periodically set the pipeline to >> >>> NULL when you >> >>> get an EOS event. When you want to get a new image, set it back to >>> PLAYING, >> >>> and then you repeat this. >> >>> >> >>> Wim >> >>> >> >>> On Mon, Jan 3, 2011 at 11:38 AM, Guillermo Rodriguez Garcia >> >>> >> >>> <[hidden email]> wrote: >> >>> > Hello all, >> >>> > >> >>> > I am trying to use gstreamer to stream video (sort of) from a HTTP >>> > source >> >>> > that serves individual JPEG images. This is not a MJPEG stream -- >> >>> > instead, a new HTTP request is required for each frame that is to be >> >>> > retrieved. >> >>> > >> >>> > This pipeline works for MJPEG: >> >>> > >> >>> > gst-launch souphttpsrc location=http://user:pass@hostname/path ! jpegdec >> >>> > ! xvimagesink >> >>> > >> >>> > If I try to use the same pipeline for an HTTP source that serves >> >>> > individual JPEG images, only one image is shown (since the HTTP response >> >>> > actually contains just one single image). >> >>> > >> >>> > Is there any way to have souphttpsrc make additional requests >> >>> > periodically from the specified location? >> >>> > >> >>> > Is there any other way to achieve this? >> >>> > >> >>> > Thanks, >> >>> > >> >>> > GRodriguez >> >>> > >> >>> > >> >>> > >>> > ------------------------------------------------------------------------- >> >>> > ----- Learn how Oracle Real Application Clusters (RAC) One Node allows >> >>> > customers to consolidate database storage, standardize their database >> >>> > environment, and, should the need arise, upgrade to a full multi-node >> >>> > Oracle RAC database without downtime or disruption >> >>> > http://p.sf.net/sfu/oracle-sfdevnl >> >>> > _______________________________________________ >> >>> > gstreamer-devel mailing list >> >>> > [hidden email] >> >>> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel >> >>> >> >>> >>> --------------------------------------------------------------------------- >> >>> --- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! >> >>> Finally, a world-class log management solution at an even better >> >>> price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires >> >>> February 28th, so secure your free ArcSight Logger TODAY! >> >>> http://p.sf.net/sfu/arcsight-sfd2d >> >>> _______________________________________________ >> >>> gstreamer-devel mailing list >> >>> [hidden email] >> >>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel >> >> -- >> >> Arnout Vandecappelle arnout at mind be >> >> Senior Embedded Software Architect +32-16-286540 >> >> Essensium/Mind http://www.mind.be >> >> G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven >> >> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle >> >> GPG fingerprint: 31BB CF53 8660 6F88 345D 54CC A836 5879 20D7 CF43 >> >> ------------------------------------------------------------------------------ >> Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! >> Finally, a world-class log management solution at an even better price-free! >> Download using promo code Free_Logger_4_Dev2Dev. Offer expires >> February 28th, so secure your free ArcSight Logger TODAY! >> http://p.sf.net/sfu/arcsight-sfd2d >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel >> >> > ------------------------------------------------------------------------------ Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Administrator
|
In reply to this post by Guillermo Rodriguez Garcia
There's the curlsrc plugin, which was implemented by its original author for the same purpose.
You could download and try it. The discussion and links to the source code are here: https://bugzilla.gnome.org/show_bug.cgi?id=558450 |
In reply to this post by Guillermo Rodriguez Garcia
Dear Wim, Arnout,
Thank you very much for your answers, I'll have a look and if I get somewhere I'll post the results back. Thanks, G Rodriguez El 23/01/2011 9:21, [hidden email] escribió: > I think the file would just be overwritten with new contents because > the filesink > would reopen (not in append mode) the file. > > Wim > > On Sat, Jan 22, 2011 at 10:00 PM, Arnout Vandecappelle <[hidden email]> wrote: >> Good idea, but wouldn't that wreak havoc on the output file in case it's a >> filesink instead of an xvimagesink? >> >> Regards, >> >> Arnout >> >> On Saturday 22 January 2011 21:55:18, Wim Taymans wrote: >> >>> For those sources I would suggest to periodically set the pipeline to >> >>> NULL when you >> >>> get an EOS event. When you want to get a new image, set it back to >>> PLAYING, >> >>> and then you repeat this. >> >>> >> >>> Wim ------------------------------------------------------------------------------ Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |