[Live-devel] **EXTERNAL**Re: Adding UDP Video to an Audio RTSP URL coming from an AXIS encoder in the same stream doesn't work

Eric Eastman Eric.Eastman at AITEngineering.com
Tue Nov 7 11:25:39 PST 2023


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.eastman at aitengineering.com<mailto:eric.eastman at aitengineering.com>

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

________________________________
From: live-devel <live-devel-bounces at us.live555.com> on behalf of Ross Finlayson <finlayson at live555.com>
Sent: Monday, November 6, 2023 5:54 PM
To: LIVE555 Streaming Media - development & use <live-devel at 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.Eastman at 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 at 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>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20231107/e74e4091/attachment-0001.htm>


More information about the live-devel mailing list