Hi, I'm trying to get Theora working with a video conferencing application we are developing. This application sends the audio content via RTP over UPD, and as one would expect, there is a draft for how a Theora stream is supposed to be wrapped into an RTP stream. http://svn.xiph.org/trunk/theora/doc/draft-ietf-avt-rtp-theora-00.txt The problem is that it is not obvious to me how the raw theora frames should be put into the RTP format specified in that draft. More specificly, I don't understand how I should extract the data from the RTP packets in a form suitable for input to the decoder. Usually when you send Theora via ogg streams, via the network or files, the ogg library does this for you, and there are code examples for how it can be done. I have not found examples where Theora is streamed via RTP. Anyone that know about Also the draft is quite old, and have expired. Does that mean that the work to standardize it have been abandoned, so that I should not implement anything based on it, or just that there have not been time to finish it, and given enough effort it will eventually be finished? The closest I came on this list, was two threads about multicast, linked to below: http://lists.xiph.org/pipermail/theora/2008-August/001859.html http://lists.xiph.org/pipermail/theora/2009-December/003109.html Here icecast was mentioned, but that does not support and UPD-based protocol, as far as I could see from the docs and the source. If anyone have any examples, I will examine these, if not I will come back with a more detailed question Thanks in advance, -Gisle
On 02/08/2010 08:51 AM, Gisle S?lensminde wrote:> Hi, > > I'm trying to get Theora working with a video conferencing application we are developing. > This application sends the audio content via RTP over UPD, and as one would > expect, there is a draft for how a Theora stream is supposed to be wrapped into an RTP > stream. > > http://svn.xiph.org/trunk/theora/doc/draft-ietf-avt-rtp-theora-00.txt > > The problem is that it is not obvious to me how the raw theora frames should be put > into the RTP format specified in that draft. More specificly, I don't understand how > I should extract the data from the RTP packets in a form suitable for input to the > decoder. Usually when you send Theora via ogg streams, via the network or files, > the ogg library does this for you, and there are code examples for how it can be > done. I have not found examples where Theora is streamed via RTP. Anyone that > know about > > Also the draft is quite old, and have expired. Does that mean that the work to > standardize it have been abandoned, so that I should not implement anything based > on it, or just that there have not been time to finish it, and given enough effort it will > eventually be finished? > > The closest I came on this list, was two threads about multicast, linked to below: > > http://lists.xiph.org/pipermail/theora/2008-August/001859.html > http://lists.xiph.org/pipermail/theora/2009-December/003109.html > > Here icecast was mentioned, but that does not support and UPD-based protocol, > as far as I could see from the docs and the source. > > > If anyone have any examples, I will examine these, if not I will come back with a more > detailed question > > Thanks in advance, > > -Gisle >Hello Gisle, I apologize that I cannot offer you much help at the moment, because I am not really a desktop application developer, and I have very little experience with network programming. However, I am interested in knowing more about the application that you're developing, because this is an area that is important to me (i.e., realtime streaming of Theora video). However, one bit of help that I may be able to offer is to checkout the source code of Ekiga (http://www.ekiga.org) because I believe they do include Theora as an option for their video conferencing feature, and Ekiga works over SIP, which is a UDP-based protocol (if I'm not mistaken). Hopefully you can find something helpful over there. The developers of the Ekiga project (at least the one I connected with) are kind and will reply to your inquiries, so you can also try that as well.
Gisle S?lensminde wrote:> I have not found examples where Theora is streamed via RTP.I'm not the right person to answer this, but you might want to look at http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-gstrtpsession.html which shows a few examples of Theora over RTP using gstreamer.> Also the draft is quite old, and have expired. Does that mean that the work to > standardize it have been abandoned, so that I should not implement anything based > on it, or just that there have not been time to finish it, and given enough effort it will > eventually be finished?I've heard comments to the effect that it might be better to just apply the Vorbis RTP payloading to Theora, but I may have misunderstood. --Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: OpenPGP digital signature Url : http://lists.xiph.org/pipermail/theora/attachments/20100208/e4abf342/attachment.pgp
On 2/8/10, Gisle S?lensminde <gisle at snirklasjon.no> wrote:> Also the draft is quite old, and have expired. Does that mean that the work > to standardize it have been abandoned, so that I should not implement anything > based on it, or just that there have not been time to finish it, and given enough > effort it will eventually be finished?The latter. To the best of my knowledge no one is available at the moment to work on this specification, which means if you or someone else would like to take over and complete it, it would make a huge difference. -Ivo
Silvia Pfeiffer wrote:> If you don't mind about using RTP over UDP, you might also want to > check out Icecast and Flumotion, which both do live streaming of > Theora, but use HTTP. >A UDP based protocol is pretty much a prerequisite, since the sound and video is transfered real-time, and we cannot use buffering, which is required to get acceptable when using TCP based protocols like HTTP.> OTOH, if you want to finish the RFC and provide a reference > implementation, that would be awesome, too! You could try contacting > Luca Barbato for more information on what it's at and whether there is > any code he is able to share. He was the driving force behind this > RFC, but I believe - as so often happens - other things in life took a > higher priority. > > Incidentally, the codec packets that Ogg deals with are IIUC the > compressed video frames, so if you feed the video frames to libtheora > for decoding, that should work. >The other posters pointed me in the direction of Ekiga and gstreamer. At least the former of these seems to do something similar enough, so that I can get a workable system based on it. The details I would like to have is of cause not in the documentation of any of these systems (too detailed), so I will spend the day reading the source. Now I'm developing a proprietary video conferencing system for my employer, that does use RTP, but currently it does not use SIP, H.323 or any other standard negotiation protocols, instead it uses our own data integration server for that. There is of cause plans for supporting more standard protocols, as that is a prerequisite for integration with other systems. Currently I'm just looking for a codec that I can include now without a lot of bureaucracy. Still, I may be able to contribute a bit to the draft, although I'm unsure how much I can do in company time, and the application I develop is proprietary and tied to a proprietary server technology. I may be able to contribute by extracting out and releasing relevant parts of the code. (I would need permission for that of cause), but it does not even make sense to release it all, since the application is part of a bigger suite. Do anyone have an opinion about what is missing from the draft? -Gisle