void StartTranscoding(uint uid) { LiveTranscoding live = new LiveTranscoding(); TranscodingUser user = new TranscodingUser(); user.uid = uid; user.x = 0; user.y = 0; user.width = HOSTVIEW_WIDTH; user.height = HOSTVIEW_HEIGHT; user.audioChannel = 0; user.alpha = 1; TranscodingUser me = user; me.uid = MyUID; me.x = me.width; live.transcodingUsers = new TranscodingUser[] { me, user }; live.userCount = 2; live.width = 2 * HOSTVIEW_WIDTH; live.height = HOSTVIEW_HEIGHT; live.videoBitrate = 400; live.videoCodecProfile = VIDEO_CODEC_PROFILE_TYPE.VIDEO_CODEC_PROFILE_HIGH; live.videoGop = 30; live.videoFramerate = 24; live.lowLatency = false; live.audioSampleRate = AUDIO_SAMPLE_RATE_TYPE.AUDIO_SAMPLE_RATE_44100; live.audioBitrate = 48; live.audioChannels = 1; live.audioCodecProfile = AUDIO_CODEC_PROFILE_TYPE.AUDIO_CODEC_PROFILE_LC_AAC; mRtcEngine.SetLiveTranscoding(live); int rc = mRtcEngine.AddPublishStreamUrl(url: YTURL, transcodingEnabled: true); Debug.Assert(rc == 0, " error in adding " + YTURL); rc = mRtcEngine.AddPublishStreamUrl(url: FBURL, transcodingEnabled: true); Debug.Assert(rc == 0, " error in adding " + FBURL); rc = mRtcEngine.AddPublishStreamUrl(url: TWURL, transcodingEnabled: hostCount > 1 ? true : false); Debug.Assert(rc == 0, " error in adding " + TWURL); }
void StartTranscoding(bool ifRemoteUser = false) { if (isStreaming && !ifRemoteUser) { return; } if (isStreaming && ifRemoteUser) { mRtcEngine.RemovePublishStreamUrl(RTMP_URL); } var lt = new LiveTranscoding(); lt.videoBitrate = 400; lt.videoCodecProfile = VIDEO_CODEC_PROFILE_TYPE.VIDEO_CODEC_PROFILE_HIGH; lt.videoGop = 30; lt.videoFramerate = 24; lt.lowLatency = false; lt.audioSampleRate = AUDIO_SAMPLE_RATE_TYPE.AUDIO_SAMPLE_RATE_44100; lt.audioBitrate = 48; lt.audioChannels = 1; lt.audioCodecProfile = AUDIO_CODEC_PROFILE_TYPE.AUDIO_CODEC_PROFILE_LC_AAC; lt.liveStreamAdvancedFeatures = new LiveStreamAdvancedFeature[0]; var localUesr = new TranscodingUser() { uid = 0, x = 0, y = 0, width = 360, height = 640, audioChannel = 0, alpha = 1.0, }; if (ifRemoteUser) { var remoteUser = new TranscodingUser() { uid = remoteUid, x = 360, y = 0, width = 360, height = 640, audioChannel = 0, alpha = 1.0, }; lt.userCount = 2; lt.width = 720; lt.height = 640; lt.transcodingUsers = new[] { localUesr, remoteUser }; } else { lt.userCount = 1; lt.width = 360; lt.height = 640; lt.transcodingUsers = new[] { localUesr }; } mRtcEngine.SetLiveTranscoding(lt); var rc = mRtcEngine.AddPublishStreamUrl(RTMP_URL, true); if (rc == 0) { logger.UpdateLog(string.Format("Error in AddPublishStreamUrl: {0}", RTMP_URL)); } }