DEV Community

Felipe Zuluaga
Felipe Zuluaga

Posted on

App Video: react-native-video VS expo-video

Are you building an app with React Native and wondering which library to use for video integration?

As of today, you'll find several libraries or dependencies to handle videos in React Native. In this case, I bring you two of the most used and arguably the best options available.

Why do I say they are among the best? Besides their functionality, they have active maintenance and well-documented guides that make integration smoother. But which one should you choose? Here are some pros and cons of each, along with some conclusions.

🔹 react-native-video

https://docs.thewidlarzgroup.com/react-native-video/
This is a widely used external library for playing videos in native React Native apps.

✅ Pros:

Supports multiple video formats (MP4, MOV, etc.).
Provides advanced video control (playback, buffering, speed, subtitles, etc.).
Integrates well with react-native-video-controls for custom playback buttons.
Supports HLS and DASH streaming.
Better performance on native devices since it uses Android’s ExoPlayer and iOS’s AVPlayer.

❌ Cons:

Requires manual installation and linking in non-autolinked projects (if using react-native-cli).
Needs additional configuration for fullscreen on iOS.
Not compatible with Expo Go unless you use expo-dev-client or eject to a bare workflow.

🔹 expo-video

https://docs.expo.dev/versions/latest/sdk/video/
This is an Expo component based on expo-av that simplifies video playback in Expo Managed projects.

✅ Pros:

Easy to use in Expo, with no additional installation required.
Simple handling of playback, controls, and video state.
Natively integrated with Expo, requiring no extra configuration for iOS or Android.

❌ Cons:

Less customizable than react-native-video.
Limited format support compared to react-native-video.
Does not support subtitles natively.
May have performance issues with long videos or streaming.
The reason for researching which of these two libraries to use was to determine which one performs better in fullscreen mode and autoplay. So, based on that, here’s my conclusion:

🎥 Which works better for fullscreen and autoplay?

🔹 For fullscreen:

react-native-video is more powerful and customizable but requires extra setup on iOS.
expo-video works well in fullscreen but is less flexible.

🔹 For autoplay:

Both support autoplay, but react-native-video offers better control over buffering and video loading.

💡 Conclusion:

If you're using Expo Managed, expo-video is the easiest and fastest to set up.
If you need more control, better performance, and fullscreen compatibility, react-native-video is the best option. 🚀

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay