2727
2828bool _readNext = false ;
2929Stopwatch _stopwatch = new Stopwatch ( ) ;
30- ProxyTrack videoTrack = null ;
31- ProxyTrack audioTrack = null ;
30+ ProxyTrack rtspVideoTrack = null ;
31+ ProxyTrack rtspAudioTrack = null ;
3232var rtspProtocolParser = new RtspProtocolParser ( ) ;
3333
3434var sdpTask = Task . Run ( ( ) =>
4848 }
4949} ) ;
5050
51+ const string STREAM_ID = "stream1" ;
52+
5153using ( var server = new RTSPServer ( port , userName , password ) )
5254{
5355 await rtspProtocolParser . Sempahore . WaitAsync ( ) ;
5456
55- server . OverrideSDP ( rtspProtocolParser . SDP , true ) ;
56-
57- videoTrack = new ProxyTrack ( TrackType . Video ) ;
58- server . AddVideoTrack ( videoTrack ) ;
57+ rtspVideoTrack = new ProxyTrack ( TrackType . Video ) ;
58+ rtspAudioTrack = new ProxyTrack ( TrackType . Audio ) ;
5959
60- audioTrack = new ProxyTrack ( TrackType . Audio ) ;
61- server . AddAudioTrack ( audioTrack ) ;
60+ var streamSource = new RTSPStreamSource ( STREAM_ID , rtspVideoTrack , rtspAudioTrack ) ;
61+ streamSource . OverrideSDP ( rtspProtocolParser . SDP , true ) ;
62+ server . AddStreamSource ( streamSource ) ;
6263
63- videoTrack ? . Start ( ) ;
64- audioTrack ? . Start ( ) ;
64+ rtspVideoTrack ? . Start ( ) ;
65+ rtspAudioTrack ? . Start ( ) ;
6566
6667 try
6768 {
7273 Console . WriteLine ( ex . ToString ( ) ) ;
7374 }
7475
75- Console . WriteLine ( $ "RTSP URL is rtsp://{ userName } :{ password } @{ hostName } :{ port } ") ;
76+ Console . WriteLine ( $ "RTSP URL is rtsp://{ userName } :{ password } @{ hostName } :{ port } / { STREAM_ID } ") ;
7677
7778 Console . WriteLine ( "Press any key to exit" ) ;
7879 while ( ! Console . KeyAvailable )
@@ -132,7 +133,7 @@ void ParseData(byte[] data, object header, uint seconds, uint microseconds)
132133 {
133134 Thread . Sleep ( sleep ) ;
134135 }
135- videoTrack ? . FeedInRawSamples ( RTPPacketUtil . ReadTS ( data ) , new List < byte [ ] > { data } ) ;
136+ rtspVideoTrack ? . FeedInRawSamples ( RTPPacketUtil . ReadTS ( data ) , new List < byte [ ] > { data } ) ;
136137 }
137138 else if ( rtspProtocolParser . Ports . Count > 1 && rtspProtocolParser . Ports [ 1 ] . Contains ( udp . SourcePort ) && rtspProtocolParser . Ports [ 1 ] . Contains ( udp . DestinationPort ) )
138139 {
@@ -149,7 +150,7 @@ void ParseData(byte[] data, object header, uint seconds, uint microseconds)
149150 Thread . Sleep ( sleep ) ;
150151 }
151152
152- audioTrack ? . FeedInRawSamples ( RTPPacketUtil . ReadTS ( data ) , new List < byte [ ] > { data } ) ;
153+ rtspAudioTrack ? . FeedInRawSamples ( RTPPacketUtil . ReadTS ( data ) , new List < byte [ ] > { data } ) ;
153154 }
154155 }
155156 }
0 commit comments