Hi,
I'm working on some sort of surveillance project for my thesis. As a first step I want to simulate an IP camera with GStreamer that outputs MJPEG. I'm trying to do this: gst-launch-0.10 videotestsrc ! ffmpegcolorspace ! jpegenc ! multipartmux ! tcpserversink port=3000 And then load this little HTML snippet into firefox: <html> <head> <title>Gstreamer testing</title> </head> <body> <h1>Testing a dummy camera with GStreamer</h1> <img src="http://localhost:3000" class="" alt="" /> <hr /> </body> </html> That won't do it, since it's only doing output to a TCP port, but it does not do it with proper HTTP headers and I believe that's why firefox won't understand this stream. Is there a plugin that can do that (encapsulate data, like MJPEG) into a proper HTTP stream? -- -- Noe Nieto
Estudiante de Psicología Holokinética Diplomados, noticias, libros, artículos, audios y videos gratuitos : percepcionunitaria.org-- -- Noe Nieto
Estudiante de Psicología Holokinética Diplomados, noticias, libros, artículos, audios y videos gratuitos : percepcionunitaria.org_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
I'm trying to do something like that ..
i have a pipeline like this appsrc ! queue ! videoparse format=14 width=%d height=%d ! videorate " " ! videoscale ! video/x-raw-rgb,width=320,height=240 " " ! queue ! ffmpegcolorspace ! queue ! jpegenc ! multipartmux ! queue " " ! tcpserversink port=5000 sync=false but i can't find anything to use this stream in some browser ... ... I'm trying to do with rtp and udpsink, this seems to work in the "server" but in the client side i can't see anything... so.. it's possible to use tcpserversink to stream and see in a browser? El 06-04-2011, a las 1:39, Noe Nieto [http://percepcionunitaria.org]] escribió: > Hi, > > I'm working on some sort of surveillance project for my thesis. As a first > step I want to simulate an IP camera with GStreamer that outputs MJPEG. I'm > trying to do this: > > gst-launch-0.10 videotestsrc ! ffmpegcolorspace ! jpegenc ! multipartmux ! > tcpserversink port=3000 > > And then load this little HTML snippet into firefox: > > <html> > <head> > <title>Gstreamer testing</title> > </head> > <body> > <h1>Testing a dummy camera with GStreamer</h1> > <img src="http://localhost:3000" class="" alt="" /> > <hr /> > </body> > </html> > > > That won't do it, since it's only doing output to a TCP port, but it does > not do it with proper HTTP headers and I believe that's why firefox won't > understand this stream. Is there a plugin that can do that (encapsulate > data, like MJPEG) into a proper HTTP stream? > > > -- > -- > *Noe Nieto > Estudiante de Psicología Holokinética* > > Diplomados, noticias, libros, artículos, > audios y videos gratuitos : *percepcionunitaria.org* > > > > -- > -- > *Noe Nieto > Estudiante de Psicología Holokinética* > > Diplomados, noticias, libros, artículos, > audios y videos gratuitos : *percepcionunitaria.org* > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel Matías Hernandez Arellano Ingeniero de Software/Proyectos en VisionLabs S.A CDA Archlinux-CL www.msdark.archlinux.cl _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Noe Nieto [http://percepcionunitaria.org]]
if there is no HTTP server sink for GStreamer, then there are other
options. Are you running Apache? Do you have PHP? It would be pretty trivial to write a PHP script that connects to your gst-launch process on port 3000 and begins streaming data from it to the HTTP client connected to Apache (firefox) On Wed, Apr 6, 2011 at 1:39 AM, Noe Nieto [http://percepcionunitaria.org]] <[hidden email]> wrote: > Hi, > > I'm working on some sort of surveillance project for my thesis. As a first > step I want to simulate an IP camera with GStreamer that outputs MJPEG. I'm > trying to do this: > > gst-launch-0.10 videotestsrc ! ffmpegcolorspace ! jpegenc ! multipartmux ! > tcpserversink port=3000 > > And then load this little HTML snippet into firefox: > > <html> > <head> > <title>Gstreamer testing</title> > </head> > <body> > <h1>Testing a dummy camera with GStreamer</h1> > <img src="http://localhost:3000" class="" alt="" /> > <hr /> > </body> > </html> > > > That won't do it, since it's only doing output to a TCP port, but it does > not do it with proper HTTP headers and I believe that's why firefox won't > understand this stream. Is there a plugin that can do that (encapsulate > data, like MJPEG) into a proper HTTP stream? > > > -- > -- > Noe Nieto > Estudiante de Psicología Holokinética > > Diplomados, noticias, libros, artículos, > > audios y videos gratuitos : percepcionunitaria.org > > > > -- > -- > Noe Nieto > Estudiante de Psicología Holokinética > > Diplomados, noticias, libros, artículos, > > audios y videos gratuitos : percepcionunitaria.org > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > -- http://codebad.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Firefox handles MJPEG streams natively. As far as I've seen, the MJPEG stream should be "canned" into a HTTP multi-part stream. That's exactly what my pipeline below is lacking.
My app is being written in Python. So there's no PHP. But how do you dissasemble the multi-part in PHP? -- Noe 2011/4/6 Donny Viszneki <[hidden email]> if there is no HTTP server sink for GStreamer, then there are other -- -- Noe Nieto
Estudiante de Psicología Holokinética Diplomados, noticias, libros, artículos, audios y videos gratuitos : percepcionunitaria.org_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Matias Hernandez Arellano
I don't see any gstreamer plugin to encode stuff in multipart streams.
It seems like we don't have another option but to implement the HTTP-Multipart encoding/canning or write a gstreamer plugin for that. --- Noe 2011/4/6 Matias Hernandez Arellano <[hidden email]> I'm trying to do something like that .. -- -- Noe Nieto
Estudiante de Psicología Holokinética Diplomados, noticias, libros, artículos, audios y videos gratuitos : percepcionunitaria.org_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Noe Nieto [http://percepcionunitaria.org]]
On Wed, Apr 6, 2011 at 11:52 AM, Noe Nieto
[http://percepcionunitaria.org]] <[hidden email]> wrote: > Firefox handles MJPEG streams natively. As far as I've seen, the MJPEG > stream should be "canned" into a HTTP multi-part stream. That's exactly what > my pipeline below is lacking. That's exactly right > My app is being written in Python. So there's no PHP. But how do you > dissasemble the multi-part in PHP? Ah, well then, you could try to write a GStreamer element to do this :) -- http://codebad.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
2011/4/6 Donny Viszneki <[hidden email]> On Wed, Apr 6, 2011 at 11:52 AM, Noe Nieto Looks like I'll need to write one (sigh).
-- -- Noe Nieto
Estudiante de Psicología Holokinética Diplomados, noticias, libros, artículos, audios y videos gratuitos : percepcionunitaria.org_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
found this old convo
http://gstreamer-devel.966125.n4.nabble.com/http-sink-element-td1047973.html Rygel can stream media to HTTP clients from a GStreamer source element (which could be a bin containing lots of elements). This source element is either provided by the MediaServer plugin or created by Rygel for transcoding. Source code at: http://git.gnome.org/browse/rygel/tree/src/rygel/ On Wed, Apr 6, 2011 at 12:18 PM, Noe Nieto [http://percepcionunitaria.org]] <[hidden email]> wrote: > > > 2011/4/6 Donny Viszneki <[hidden email]> >> >> On Wed, Apr 6, 2011 at 11:52 AM, Noe Nieto >> [http://percepcionunitaria.org]] <[hidden email]> wrote: >> > Firefox handles MJPEG streams natively. As far as I've seen, the MJPEG >> > stream should be "canned" into a HTTP multi-part stream. That's exactly >> > what >> > my pipeline below is lacking. >> >> That's exactly right >> >> > My app is being written in Python. So there's no PHP. But how do you >> > dissasemble the multi-part in PHP? >> >> Ah, well then, you could try to write a GStreamer element to do this :) > > Looks like I'll need to write one (sigh). > >> >> -- >> http://codebad.com/ >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > -- > -- > Noe Nieto > Estudiante de Psicología Holokinética > > Diplomados, noticias, libros, artículos, > > audios y videos gratuitos : percepcionunitaria.org > -- http://codebad.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
You can use multifdsink to stream over http: simply add the file
descriptor of the connected client to multifdsink, I developed an application similar to what you need using multifdsink and it works fine. Nicola Il giorno mer, 06/04/2011 alle 12.28 -0400, Donny Viszneki ha scritto: > found this old convo > > http://gstreamer-devel.966125.n4.nabble.com/http-sink-element-td1047973.html > > Rygel can stream media to HTTP clients from a GStreamer source > element (which could be a bin containing lots of elements). This > source element is either provided by the MediaServer plugin or created > by Rygel for transcoding. > > Source code at: http://git.gnome.org/browse/rygel/tree/src/rygel/ > > On Wed, Apr 6, 2011 at 12:18 PM, Noe Nieto > [http://percepcionunitaria.org]] <[hidden email]> wrote: > > > > > > 2011/4/6 Donny Viszneki <[hidden email]> > >> > >> On Wed, Apr 6, 2011 at 11:52 AM, Noe Nieto > >> [http://percepcionunitaria.org]] <[hidden email]> wrote: > >> > Firefox handles MJPEG streams natively. As far as I've seen, the MJPEG > >> > stream should be "canned" into a HTTP multi-part stream. That's exactly > >> > what > >> > my pipeline below is lacking. > >> > >> That's exactly right > >> > >> > My app is being written in Python. So there's no PHP. But how do you > >> > dissasemble the multi-part in PHP? > >> > >> Ah, well then, you could try to write a GStreamer element to do this :) > > > > Looks like I'll need to write one (sigh). > > > >> > >> -- > >> http://codebad.com/ > >> _______________________________________________ > >> gstreamer-devel mailing list > >> [hidden email] > >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > > > > > -- > > -- > > Noe Nieto > > Estudiante de Psicología Holokinética > > > > Diplomados, noticias, libros, artículos, > > > > audios y videos gratuitos : percepcionunitaria.org > > > > > _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
2011/4/6 Mailing List SVR <[hidden email]> You can use multifdsink to stream over http: simply add the file Can multi-fdsink ecapsulate the MJPEG stream into a multi-part HTTP stream? -- Noe Nicola -- -- Noe Nieto
Estudiante de Psicología Holokinética Diplomados, noticias, libros, artículos, audios y videos gratuitos : percepcionunitaria.org_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Il giorno mer, 06/04/2011 alle 11.46 -0500, Noe Nieto [http://percepcionunitaria.org]] ha scritto: > > > 2011/4/6 Mailing List SVR <[hidden email]> > You can use multifdsink to stream over http: simply add the > file > descriptor of the connected client to multifdsink, I developed > an > application similar to what you need using multifdsink and it > works > fine. > > > Can multi-fdsink ecapsulate the MJPEG stream into a multi-part HTTP > stream? you can use multipartmux for muxing jpeg as multipart stream and then multifdsink to write this stream on the file descriptor of the http client (after the initial simple http handshake). There isn't a pipeline to demostrate this you have to write a gstreamer application. I have a working app that do this (and much more) in c++ you can also take a look at flumotion for insipiration it use multifdsink to stream ogg/theora over http, Nicola > > -- > Noe > > Nicola > > Il giorno mer, 06/04/2011 alle 12.28 -0400, Donny Viszneki ha > scritto: > > > found this old convo > > > > > http://gstreamer-devel.966125.n4.nabble.com/http-sink-element-td1047973.html > > > > Rygel can stream media to HTTP clients from a GStreamer > source > > element (which could be a bin containing lots of elements). > This > > source element is either provided by the MediaServer plugin > or created > > by Rygel for transcoding. > > > > Source code at: > http://git.gnome.org/browse/rygel/tree/src/rygel/ > > > > On Wed, Apr 6, 2011 at 12:18 PM, Noe Nieto > > [http://percepcionunitaria.org]] <[hidden email]> wrote: > > > > > > > > > 2011/4/6 Donny Viszneki <[hidden email]> > > >> > > >> On Wed, Apr 6, 2011 at 11:52 AM, Noe Nieto > > >> [http://percepcionunitaria.org]] <[hidden email]> > wrote: > > >> > Firefox handles MJPEG streams natively. As far as I've > seen, the MJPEG > > >> > stream should be "canned" into a HTTP multi-part > stream. That's exactly > > >> > what > > >> > my pipeline below is lacking. > > >> > > >> That's exactly right > > >> > > >> > My app is being written in Python. So there's no PHP. > But how do you > > >> > dissasemble the multi-part in PHP? > > >> > > >> Ah, well then, you could try to write a GStreamer element > to do this :) > > > > > > Looks like I'll need to write one (sigh). > > > > > >> > > >> -- > > >> http://codebad.com/ > > >> _______________________________________________ > > >> gstreamer-devel mailing list > > >> [hidden email] > > >> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > > > > > > > > > -- > > > -- > > > Noe Nieto > > > Estudiante de Psicología Holokinética > > > > > > Diplomados, noticias, libros, artículos, > > > > > > audios y videos gratuitos : percepcionunitaria.org > > > > > > > > > > > > > > > -- > -- > Noe Nieto > Estudiante de Psicología Holokinética > > Diplomados, noticias, libros, artículos, > > audios y videos gratuitos : percepcionunitaria.org > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Noe Nieto [http://percepcionunitaria.org]]
On Wed, Apr 6, 2011 at 8:59 AM, Noe Nieto
[http://percepcionunitaria.org]] <[hidden email]> wrote: > I don't see any gstreamer plugin to encode stuff in multipart streams. > > It seems like we don't have another option but to implement the > HTTP-Multipart encoding/canning or write a gstreamer plugin for that. Hrm? That's what multipartmux does. You used it in your example here. What GStreamer doesn't include is an HTTP server. Mike > > --- > Noe > > > 2011/4/6 Matias Hernandez Arellano <[hidden email]> >> >> I'm trying to do something like that .. >> i have a pipeline like this >> >> appsrc ! queue ! videoparse format=14 width=%d height=%d ! videorate " >> " ! videoscale ! >> video/x-raw-rgb,width=320,height=240 " >> " ! queue ! ffmpegcolorspace ! queue ! >> jpegenc ! multipartmux ! queue " >> " ! tcpserversink port=5000 sync=false >> >> but i can't find anything to use this stream in some browser ... ... >> I'm trying to do with rtp and udpsink, this seems to work in the "server" >> but in the client side i can't see anything... >> >> so.. it's possible to use tcpserversink to stream and see in a browser? >> >> El 06-04-2011, a las 1:39, Noe Nieto [http://percepcionunitaria.org]] >> escribió: >> >> > Hi, >> > >> > I'm working on some sort of surveillance project for my thesis. As a >> > first >> > step I want to simulate an IP camera with GStreamer that outputs MJPEG. >> > I'm >> > trying to do this: >> > >> > gst-launch-0.10 videotestsrc ! ffmpegcolorspace ! jpegenc ! multipartmux >> > ! >> > tcpserversink port=3000 >> > >> > And then load this little HTML snippet into firefox: >> > >> > <html> >> > <head> >> > <title>Gstreamer testing</title> >> > </head> >> > <body> >> > <h1>Testing a dummy camera with GStreamer</h1> >> > <img src="http://localhost:3000" class="" alt="" /> >> > <hr /> >> > </body> >> > </html> >> > >> > >> > That won't do it, since it's only doing output to a TCP port, but it >> > does >> > not do it with proper HTTP headers and I believe that's why firefox >> > won't >> > understand this stream. Is there a plugin that can do that (encapsulate >> > data, like MJPEG) into a proper HTTP stream? >> > >> > >> > -- >> > -- >> > *Noe Nieto >> > Estudiante de Psicología Holokinética* >> > >> > Diplomados, noticias, libros, artículos, >> > audios y videos gratuitos : *percepcionunitaria.org* >> > >> > >> > >> > -- >> > -- >> > *Noe Nieto >> > Estudiante de Psicología Holokinética* >> > >> > Diplomados, noticias, libros, artículos, >> > audios y videos gratuitos : *percepcionunitaria.org* >> > _______________________________________________ >> > gstreamer-devel mailing list >> > [hidden email] >> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> >> Matías Hernandez Arellano >> Ingeniero de Software/Proyectos en VisionLabs S.A >> CDA Archlinux-CL >> www.msdark.archlinux.cl >> >> >> >> >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > -- > -- > Noe Nieto > Estudiante de Psicología Holokinética > > Diplomados, noticias, libros, artículos, > > audios y videos gratuitos : percepcionunitaria.org > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
2011/4/6 Michael Smith <[hidden email]>
That narrows down the problem :) Maybe the solution would be tu "subclass" the tcpserversink and "decorate" the frames with tcp headers. Does that sound feasible in GStreamer? -- Noe
-- -- Noe Nieto
Estudiante de Psicología Holokinética Diplomados, noticias, libros, artículos, audios y videos gratuitos : percepcionunitaria.org_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
2011/4/6 Noe Nieto [http://percepcionunitaria.org]] <[hidden email]>
Ahh, now I see. That's why Rygel is for :)
-- -- Noe Nieto
Estudiante de Psicología Holokinética Diplomados, noticias, libros, artículos, audios y videos gratuitos : percepcionunitaria.org_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Noe Nieto [http://percepcionunitaria.org]]
On Wed, Apr 6, 2011 at 2:56 PM, Noe Nieto
[http://percepcionunitaria.org]] <[hidden email]> wrote: > 2011/4/6 Michael Smith <[hidden email]> >> What GStreamer doesn't include is an HTTP server. > > Maybe the solution would be tu "subclass" the tcpserversink and "decorate" > the frames with tcp headers. > > Does that sound feasible in GStreamer? If you can write GStreamer elements in Python, then it would be easy to use Python's built-in basic http server. -- http://codebad.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Noe Nieto [http://percepcionunitaria.org]]
On Wed, Apr 6, 2011 at 3:03 PM, Noe Nieto
[http://percepcionunitaria.org]] <[hidden email]> wrote: > Ahh, now I see. That's why Rygel is for :) Ah yes, lol, forgot about that already! -- http://codebad.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Donny Viszneki
2011/4/6 Donny Viszneki <[hidden email]> On Wed, Apr 6, 2011 at 2:56 PM, Noe Nieto +1000 I like that ! -- -- -- Noe Nieto
Estudiante de Psicología Holokinética Diplomados, noticias, libros, artículos, audios y videos gratuitos : percepcionunitaria.org_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
El 06-04-2011, a las 15:10, Noe Nieto [http://percepcionunitaria.org]] escribió: > 2011/4/6 Donny Viszneki <[hidden email]> > >> On Wed, Apr 6, 2011 at 2:56 PM, Noe Nieto >> [http://percepcionunitaria.org]] <[hidden email]> wrote: >>> 2011/4/6 Michael Smith <[hidden email]> >>>> What GStreamer doesn't include is an HTTP server. >>> >>> Maybe the solution would be tu "subclass" the tcpserversink and >> "decorate" >>> the frames with tcp headers. >>> >>> Does that sound feasible in GStreamer? >> >> If you can write GStreamer elements in Python, then it would be easy >> to use Python's built-in basic http server. >> >> > +1000 > > I like that ! > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel Finally ... can you solve this??? Matías Hernandez Arellano Ingeniero de Software/Proyectos en VisionLabs S.A CDA Archlinux-CL www.msdark.archlinux.cl _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
2011/4/11 Matias Hernandez Arellano <[hidden email]>
Didn't had the chance to hack on it. Hope to get something during this week.
-- -- Noe Nieto
Estudiante de Psicología Holokinética Diplomados, noticias, libros, artículos, audios y videos gratuitos : percepcionunitaria.org_______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |