public void startStream() {
		if (mTmpParameters.host == null) throw new IllegalStateException("setServerAddress(String,int) has not been called !");
		if (mTmpParameters.session == null) throw new IllegalStateException("setSession() has not been called !");
		mHandler.post(new Runnable () {
			@Override
			public void run() {
				if (mState != STATE_STOPPED) return;
				mState = STATE_STARTING;
				
				Log.d(TAG,"Connecting to RTSP server...");
				
				// If the user calls some methods to configure the client, it won't modify its behavior until the stream is restarted
				mParameters = mTmpParameters.clone();
				mParameters.session.setDestination(mTmpParameters.host);
				
				try {
					mParameters.session.syncConfigure();
				} catch (Exception e) {
					mParameters.session = null;
					mState = STATE_STOPPED;
					return;
				}				
				
				try {
					tryConnection();
				} catch (Exception e) {
					postError(ERROR_CONNECTION_FAILED, e);
					abort();
					return;
				}
				
				try {
					mParameters.session.syncStart();
					mState = STATE_STARTED;
					if (mParameters.transport == TRANSPORT_UDP) {
						mHandler.post(mConnectionMonitor);
					}
				} catch (Exception e) {
					abort();
				}

			}
		});

	}
Connects to the RTSP server to publish the stream, and the effectively starts streaming.
You need to call {@link #setServerAddress(String, int)} and optionally {@link #setSession(Session)} 
and {@link #setCredentials(String, String)} before calling this.
Should be called of the main thread !
src/net/majorkernelpanic/streaming/rtsp/RtspClient.java