Librem 5 can do all those things fine. Video is somewhat less reliable, but it works.