Thanks for the help.

The audio is coming from a radio's audio output thru an AXIS media encoder and 
doing audio only. The video we have no control over as it's a purpose-built 
camera by another contractor and always comes in as MPEG4 over UDP. We aren't 
trying to synchronize them, but just trying to put them on the same stream. I'm 
able to get the UDP to work and the Audio to work separately, but having 
trouble adding them to the same stream and playing it in VLC because I don't 
have access to the ProxyServerMediaSubsession. I also tried to add the audio as 
a subsession to the UDP video, but ran into the same problem of not being able 
to instantiate the ProxyServerMediaSubsession directly.

Also, I inherited this code that had already subclassed 
OnDemandServerMediaSubsession. I diffed it against the baseline one and it 
looks like the only thing that was removed was at the end of the startPlaying() 
method an if statement was commented out.

It was changed from this:

  if (fRTCPInstance != NULL) {
    // Hack: Send an initial RTCP "SR" packet, before the initial RTP packet, 
so that receivers will (likely) be able to
    // get RTCP-synchronized presentation times immediately:
    fRTCPInstance->sendReport();
  }

To this:
      // Some clients dont like the RTCP packet before the initial RTP packet
      //if (fRTCPInstance != NULL) {
      //    // Hack: Send an initial RTCP "SR" packet, before the initial RTP 
packet, so that receivers will (likely) be able to
      //    // get RTCP-synchronized presentation times immediately:
      //    fRTCPInstance->sendReport();
      //}

If you think I can re-use yours I will do so as I don't like re-inventing the 
wheel, especially since it makes updates and fixes in the future much harder to 
merge.


Thanks,



Eric Eastman



Staff Software Engineer



Offsite Location: IDE Facility

3045 Technology Parkway

Orlando, Fl 32826

Phone: (407) 883-3138

Email: eric.east...@aitengineering.com<mailto:eric.east...@aitengineering.com>

Site: www.aitengineering.com<http://www.aitengineering.com/>

________________________________
From: live-devel <live-devel-boun...@us.live555.com> on behalf of Ross 
Finlayson <finlay...@live555.com>
Sent: Monday, November 6, 2023 5:54 PM
To: LIVE555 Streaming Media - development & use <live-de...@us.live555.com>
Subject: **EXTERNAL**Re: [Live-devel] Adding UDP Video to an Audio RTSP URL 
coming from an AXIS encoder in the same stream doesn't work

[WARNING] This message comes from outside of AIT. Use extreme caution with 
links or attachments. [WARNING]

> On Nov 2, 2023, at 10:20 AM, Eric Eastman <eric.east...@aitengineering.com> 
> wrote:
>
> I'm trying to combine video and audio in the same stream. I do see posts were 
> you just add a subsession, but it doesn't work if the subsession is an rtsp 
> url.

Sorry for the delay in responding to this.  I haven’t tried adding a 
“ServerMediaSubsession” that’s not a “ProxyServerMediaSubsession” to a 
“ProxyServerMediaSession”, but off the top of my head, I don’t know of any 
reason why that wouldn’t work.

But my first question is: What specifically are you trying to do?  Your audio 
appears to come from a ‘back-end’ RTSP server (embedded in an Axis camera).  
But where is your video coming from?  If it’s coming from the same camera, then 
why do you not also use its RTSP stream?  Or are you processing the video in 
some way before sending it to the proxy server?  Note that it you do this, you 
have little chance of properly synchronizing audio and video.  (To get A/V 
synchronization, both the audio and video substreams should use RTP.)  Is it 
possible that the proxy server is actually sending both audio and video to your 
'front-end' RTSP client (media player), but that it’s not able to render it 
because the timestamps are messed up?  You can test this by using “openRTSP” 
<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.live555.com%2FopenRTSP&data=05%7C01%7Ceric.eastman%40aitengineering.com%7C2b8839a207304eb79d1508dbdf34af47%7C96108be3d6734e76aee49c7bb49a433a%7C0%7C0%7C638349189630624733%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=KVV1CEyI4P%2Byl4v%2FafJCatvvM%2B6Ox3Cw45q2%2FYbUZBY%3D&reserved=0<http://www.live555.com/openRTSP>>
 as your front-end RTSP client.

An alternative would be to do the media processing/transcoding inside the proxy 
server, using the optional ’transcoding’ mechanism that’s provided with the 
“ProxyServerMediaSubsession” class.  This isn’t well-documented, but you can 
see it by noting the optional “transcodingTable” parameter to the 
“ProxyServerMediaSubsession” constructor.

Also, why are you trying to reimplement the “OnDemandServerMediaSubsession” 
class (but calling it “OnDemandMediaSubsession”)?  What’s wrong with the 
“OnDemandServerMediaSubsession” class that we already give you?  If you find 
yourself duplicating a lot of the code that we've already given you, then 
you’re likely doing something wrong.


Ross Finlayson
Live Networks, Inc.
https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.live555.com%2F&data=05%7C01%7Ceric.eastman%40aitengineering.com%7C2b8839a207304eb79d1508dbdf34af47%7C96108be3d6734e76aee49c7bb49a433a%7C0%7C0%7C638349189630624733%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=CmW3dYto2TvNgcKo8xuYAuo1QzzZBIMkZ6ryrmY%2FmlM%3D&reserved=0<http://www.live555.com/>


_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.live555.com%2Fmailman%2Flistinfo%2Flive-devel&data=05%7C01%7Ceric.eastman%40aitengineering.com%7C2b8839a207304eb79d1508dbdf34af47%7C96108be3d6734e76aee49c7bb49a433a%7C0%7C0%7C638349189630624733%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=MWRDXIFnrYpUz5InNzL2H9zMWEOM8T9UpI02hvG1b2A%3D&reserved=0<http://lists.live555.com/mailman/listinfo/live-devel>
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to