If you have not decided how you are going to encrypt videos, I'd suggest you to use DASH.
DASH allows encrypting your video files and later streaming videos to the player real time. Therefore videos will not completely be decrypted beforehand.
Flutter video_,player supports both Android and iOS. It also supports DASH type media files (files that have .mpd extension). Therefore, in your scenario, I think using video_player package in flutter along with a way to convert your media files to DASH would be a good solution.