[iOS] RTMP Livestream Libraries Not Working Properly with React Native New Architecture (Fabric)

Hi,

I’m building a livestream feature in React Native with New Architecture (Fabric) enabled on iOS. I’ve tested two different RTMP streaming libraries and both have issues:


Issue 1: @api.videoapi.video**/react-native-livestream (v2.0.2)**

When using ApiVideoLiveStreamView, the component mounts and startStreaming(streamKey, rtmpUrl) is called successfully (no errors), but:

  • :cross_mark: No actual RTMP connection is made to the server

  • :cross_mark: Dashboard shows stream status as “idle” / “not started”

  • :cross_mark: No onConnectionSuccess or onConnectionFailed callback is fired

  • :cross_mark: Viewers see nothing

// This executes without error but nothing happens

liveStreamRef.current.startStreaming(streamKey, rtmpUrl);

console.log(“startStreaming called”); // This logs, but no callbacks fire

Logs show:

:white_check_mark: iOS: ApiVideoLiveStreamView camera preview should be ready

:red_circle: CALLING ApiVideoLiveStreamView.startStreaming() NOW…

:white_check_mark: iOS: ApiVideoLiveStreamView startStreaming() called

// … then nothing - no connection events, stream stays “idle”


Issue 2: react-native-nodemediaclient / NodePublisher

When using NodePublisher, the RTMP streaming WORKS - viewers can see the video stream. However:

  • :white_check_mark: RTMP connection succeeds (code 2001)

  • :white_check_mark: Viewers CAN see the video feed

  • :cross_mark: Camera preview does NOT render on streamer’s screen (black screen)

  • :cross_mark: startPreview() executes but native preview layer doesn’t display on Fabric

directStreamRef.current.startPreview(); // Executes, but preview is black

directStreamRef.current.start(); // This works - viewers see video

Logs show:

:video_camera: iOS: NodePublisher ref SET for streaming

:white_check_mark: iOS: NodePublisher preview initialized

:red_circle: CALLING NodePublisher.start() NOW…

:television: iOS NodePublisher Event: code=2001, msg=…success // CONNECTED!

:tada: iOS: NodePublisher RTMP CONNECTED! STREAM IS LIVE!

// Stream works for viewers, but streamer sees black screen


Environment:

Package Version
React Native 0.76.x
Expo SD@api.video 52
@api.video/react-native-livestream 2.0.2
react-native-nodemediaclient 0.3.4
iOS 17+
New Architecture (Fabric) Enabled
Hermes Enabled

Questions:

  1. Is @api.video/react-native-livestream compatible with React Native New Architecture (Fabric)? The startStreaming() method doesn’t seem to work at all.

  2. For NodePublisher / react-native-nodemediaclient - is there a known issue with the native preview layer not rendering on Fabric? The streaming works but local preview doesn’t display.

  3. Are there any workarounds or patches to make camera preview work on iOS with Fabric enabled?


What I’ve Tried:

  • Applied patches for Fabric compatibility (Swift header imports, optional unwrapping)

  • Tried both libraries independently

  • Verified camera permissions are granted

  • Tested on physical iOS device (not simulator)

  • Confirmed RTMP URL format is correct (works with NodePublisher)

Any help would be greatly appreciated! :folded_hands:

1 Like

Hello @pravat04 ,Thank you for the detailed report and environment details — this is very helpful. We will share this with our team to review Fabric (New Architecture) compatibility and the iOS preview/streaming behavior you described.

We will get back to you as soon as we have an update.

sure , please give me a solution on this . this is most priority for now.

Hello @pravat04 , After checking with our team, we have temporarily disabled the livestream feature in the React Native UIKit because the current livestream library does not support the New React Native Architecture (Fabric) at this time.

In the meantime, please use this branch, which is compatible with React Native 0.76 and above and has the livestream feature disabled:

Subject: Urgent: Livestream Feature Disabled - Need Alternative Solution for Production App
Hello Amity Team,
Thank you for the update regarding the livestream feature. However, I’m in a critical situation that requires urgent clarification and support.
Background & Current Issue:
Previous Recommendation (HDR Video Support): A few weeks ago, your support team advised me to upgrade to React Native 0.81+ to enable HDR video upload functionality. I followed this recommendation and successfully upgraded our entire codebase.
Current Recommendation (Livestream Compatibility): Now I’m being told to use a branch that’s compatible with React Native 0.76+ but has the livestream feature completely disabled due to the New Architecture (Fabric) incompatibility.
Critical Business Impact:
Livestream is a core feature of our application, not an optional add-on
We are on the verge of going to market with our production release
Our users and marketing materials already feature live streaming capabilities
Disabling this feature is not a viable option for our launch
My Concerns & Questions:
Timeline Clarity: When can we expect livestream support for the New Architecture? Are we talking about weeks, months, or longer?
Alternative Solutions:
Is there a way to keep both HDR video upload AND livestream functionality?
Can I use the old architecture temporarily for livestream while using the new architecture for other features?
Are there any workarounds or beta versions available for testing?
Recommended Approach:
Is there a hybrid approach that allows both features to coexist?
Technical Support: Can your team provide direct engineering support to help us implement a custom solution if needed? We’re willing to work with your team closely to resolve this.
What I Need:
A clear roadmap for livestream + New Architecture support
Immediate workaround solutions, if any exist
Direct communication with your engineering team to discuss options
Beta access to any experimental builds that might support both features
This is blocking our production release, and any guidance you can provide would be greatly appreciated. We’ve invested significantly in building our app with Amity’s SDK, and we need a path forward that doesn’t compromise our core features.

Hello @pravat04 , thank you for sharing the detailed information and raising your concern. We’ve noted the urgency, and our team is currently reviewing this. We’ll get back to you with an update as soon as possible.

Hello @pravat04, we understand this may be frustrating, and we appreciate you taking the time to raise this with us. After checking with our team, we can confirm that there is currently no workaround available. We’re aiming for a release by mid to end of this quarter (subject to change). If you have any questions or would like to talk through your use case, please don’t hesitate to reach out to your designated Customer Success Manager. Thank you for your patience and understanding.