[Live-devel] Modifying LiveMedia RTSPServer classes to support URI parameters
Matt Schuckmannn
matt at schuckmannacres.com
Wed Jun 15 16:58:05 PDT 2011
Worked like a charm, thank you Ross.
Matt S.
On 6/14/2011 2:45 PM, Matt Schuckmannn wrote:
> Ah I think I see what your saying I took your words
> "ServerMediaSubsession (subclass)" to mean that you were suggesting
> that I create an entirely new subclass type for each possible
> combination of parameters but you meant a new instance of a sub class
> of ServerMediaSubsession for each connection.
>
> Yes, that does seem much more feasible, don't know why I didn't see it
> before.
> I will investigate that approach and let you know how it goes.
>
> Thanks,
> Matt S.
>
> On 6/14/2011 2:27 PM, Ross Finlayson wrote:
>>>> For example (to use your example string),
>>>> "live_video?height=320&width=400&kbps=300&fps=15" would use a
>>>> completely separate "ServerMediaSubsession" (subclass) object than
>>>> "live_video?height=320&width=400&kbps=300&fps=30".
>>>>
>>> This seems infeasible as I want to be able support any number of
>>> combination of all 4 of these parameters (plus more parameters like
>>> GoP size etc).
>>
>> No, it's completely feasible. The trick is *not* to create all of
>> the possible the "ServerMediaSession" (and "ServerMediaSubsession")
>> objects upfront, but instead to create them 'on demand', when needed.
>> This is what we do for the "LIVE555 Media Server" application, using
>> the "DynamicRTSPServer" class - which subclasses "RTSPServer" and
>> reimplements the virtual function "lookupServerMediaSession()". (Note
>> the code in the "mediaServer" directory.) You could do something
>> similar.
>>
>>
>>> Seems much more reasonable to have one subclass of
>>> ServerMediaSession and ServerMediaSubsession that can read and
>>> interpret the parameters on a per connection basis.
>>
>> Well, the problem with that is - as you've discovered - that the
>> "ServerMediaS(ubs)ession" objects are assumed to each represent a
>> single 'media object' that you're streaming - e.g., a file. If you
>> open another stream with different codec parameters, it's
>> conceptually like streaming from a different file.
>>
>> Either way will probably work, but I suspect that you'll find it
>> easier to use a different "ServerMediaS(ubs)ession" object for each
>> parameter combination - but create these on demand.
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
More information about the live-devel
mailing list