Navigate:
All Reposreact-native-video
~$REACTN0.0%

react-native-video: Video player component for React Native

Native iOS/Android video playback with streaming and DRM.

LIVE RANKINGS • 06:53 AM • STEADY
OVERALL
#240
8
MOBILE & DESKTOP
#11
2
30 DAY RANKING TREND
ovr#240
·Mobil#11
STARS
7.6K
FORKS
3.0K
DOWNLOADS
271.2K
7D STARS
+2
7D FORKS
0
See Repo:
Share:

Learn more about react-native-video

React Native Video is a cross-platform component library that provides native video playback capabilities for React Native applications on iOS and Android devices. The library bridges native video player implementations on each platform, exposing a unified React component interface that wraps AVPlayer on iOS and ExoPlayer on Android. It supports advanced features including adaptive bitrate streaming protocols like HLS and DASH, digital rights management through platform-specific DRM systems, and hardware-accelerated decoding for efficient performance. The component integrates into React Native's architecture by implementing native modules that communicate with JavaScript through the bridge, allowing developers to control playback state, handle events, and configure video properties declaratively. This approach leverages each platform's optimized media frameworks while maintaining a consistent API surface across operating systems.


1

DRM and Adaptive Streaming

Built-in Widevine and FairPlay DRM with native HLS, DASH, and SmoothStreaming support. Handles adaptive bitrate streaming without additional configuration or third-party dependencies.

2

New Architecture Compatible

Version 7 fully supports React Native's new architecture through an interoperability layer. Version 6 maintains backward compatibility for gradual migration paths.

3

Granular Playback Control

Configurable API for audio/subtitle track selection, buffer management, and playback event handling. Provides low-level control over native player behavior through the JavaScript bridge.


import React from 'react';
import Video from 'react-native-video';

const VideoPlayer = () => {
  return (
    <Video
      source={{ uri: 'https://example.com/video.mp4' }}
      style={{ width: '100%', height: 300 }}
      controls={true}
      paused={false}
    />
  );
};

vv7.0.0-alpha.8

Alpha release enhancing source loading and adding Expo config for Android notification controls; fixes PiP control behavior and iOS player recreation bug.

  • Configure Expo plugin for Android notification controls; source loading logic has been enhanced but specifics are not detailed.
  • Apply fix for iOS AVPlayerViewController recreation issue and Android PiP control disablement to avoid UI conflicts.
vv7.0.0-alpha.7

Bug-fix alpha addressing Android foreground service handling and an iOS production crash via Nitro version bump.

  • Update Android integration if using background playback; foreground service now starts automatically when required.
  • Upgrade to this alpha on iOS to resolve production build crashes caused by the previous Nitro dependency version.
vv7.0.0-alpha.6

Alpha release adds notification controls, Android surface-type prop, and flexible page sizes; bumps nitro modules dependency.

  • Enable notification controls for media playback and configure Android surface type via new prop.
  • Upgrade nitro modules dependency; Android now supports flexible page sizes for improved rendering.


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers