Skip to content

Commit ebe3967

Browse files
committed
simplify session creation, use reasonable bitrate
1 parent 863d677 commit ebe3967

File tree

1 file changed

+12
-18
lines changed

1 file changed

+12
-18
lines changed

packages/react-native-broadcast/ios/Broadcast.swift

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ public class BroadcastSwift: NSObject {
1111
let uri = "rtmps://ingress.stream-io-video.com:443/par8f5s3gn2j.default.RdcC9Qr4j7pzr62FZbo8Q/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL3Byb250by5nZXRzdHJlYW0uaW8iLCJzdWIiOiJ1c2VyL2phbmUiLCJ1c2VyX2lkIjoiamFuZSIsInZhbGlkaXR5X2luX3NlY29uZHMiOjYwNDgwMCwiZW52aXJvbm1lbnQiOiJwcm9udG8iLCJpYXQiOjE3NjA5Njc0MzMsImV4cCI6MTc2MTU3MjIzM30.pkBwlOMlo7wUJG4DSG7fk8QAxF912Y5UaErm4H6a59I"
1212

1313
print("[RTMP] Broadcast starting")
14-
14+
1515
Task {
1616
do {
1717
let audioSourceService = AudioSourceService()
1818
await audioSourceService.setUp()
19-
19+
2020
print("[RTMP] Audio source created")
2121

2222
let mixer = MediaMixer(captureSessionMode: .single)
@@ -25,37 +25,31 @@ public class BroadcastSwift: NSObject {
2525
session.sessionPreset = .hd1280x720
2626
}
2727
await mixer.setMonitoringEnabled(true)
28-
28+
2929
var videoMixerSettings = await mixer.videoMixerSettings
3030
videoMixerSettings.mode = .offscreen
3131
await mixer.setVideoMixerSettings(videoMixerSettings)
32-
32+
3333
print("[RTMP] Mixer created")
3434

3535
let front = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front)
3636
try? await mixer.attachVideo(front, track: 0) { unit in unit.isVideoMirrored = true }
37-
37+
3838
let mic = AVCaptureDevice.default(for: .audio)
3939
try? await mixer.attachAudio(mic)
4040

4141
await mixer.startCapturing()
4242
await mixer.startRunning()
43-
43+
4444
print("[RTMP] Mixer running")
45-
46-
await SessionBuilderFactory.shared.register(RTMPSessionFactory())
47-
let session = try await SessionBuilderFactory.shared.make(URL(string: uri))
48-
.setMode(.publish)
49-
.build()
50-
guard let session else {
51-
print("[RTMP] session is null")
52-
return completion(-1, nil)
53-
}
54-
45+
46+
let factory = RTMPSessionFactory.init()
47+
let session = factory.make(URL(string: uri)!, mode: .publish, configuration: nil)
48+
5549
print("[RTMP] Session created")
5650

5751
await mixer.addOutput(session.stream)
58-
52+
5953
var audioSettings = await session.stream.audioSettings
6054
audioSettings.format = .aac
6155
audioSettings.bitRate = 48000
@@ -64,7 +58,7 @@ public class BroadcastSwift: NSObject {
6458
var videoSettings = await session.stream.videoSettings
6559
videoSettings.isLowLatencyRateControlEnabled = false
6660
videoSettings.bitRateMode = .average
67-
videoSettings.bitRate = 4200000
61+
videoSettings.bitRate = 2500000
6862
videoSettings.videoSize = CGSize(width: 720, height: 1280)
6963
try await session.stream.setVideoSettings(videoSettings)
7064

0 commit comments

Comments
 (0)