I get this question or dilemma a lot with my video clients, so I decided to shoot an entire video on the topic, basing in on some research released by Wistia around a year or so ago.
They pulled data from 565,000 videos with more than 1.3 billion plays, so I think it's quite representative.
Have a look and let me know what you think, I hope you find it useful!
If you just wanna skip the video, basically the sweet spot is anything under 2:00, after that the engagement rate starts dropping.
Research source: https://wistia.com/blog/optimal-video-length