I want to use a library to showing pictures and videos in my C++ program running on an ARM-based board with Ubuntu-server.
Your question is very unclear. What screen will show the picture. What kind of ARM board is it (Raspberry Pi ?)? Does the ARM board has some LCD screen plugged into its HDMI connector? From where is the video stream coming from? What standard are you using (H264 ?) ?
If the ARM board is server-like without any direct connection to a screen, I would consider running some HTTP server code on it (perhaps using some HTTP server library like libonion). Then you don't need GTK or OpenCV on it. You'll use some web browser. You need to understand the HTTP protocol and HTML5 at least.
If some screen is directly connected (thru an HDMI or DVI cable) to the ARM board, you need to decide what display server is using it (some X11 server, or Wayland ?). BTW, it could happen that your hardware is not powerful enough to display videos on a large (somehow high-resolution) screen.
Before choosing GTk+, OpenCV, Qt read at least the wikipages describing them first. Then read their documentation. At last choose whatever is appropriate.
You should become more familiar with Linux (and that takes several months). I recommend installing some Linux distribution on your usual (desktop or laptop) computer, and reading ALP. Take time to code some toy application using GTK (and another one using Qt, and perhaps another one using OpenCV - which is probably inappropriate for your needs).