QtAV can meet your most demands:
* Hardware decoding suppprt: DXVA2, VAAPI, VDA/VideoToolbox, CedarX, CUDA
* OpenGL and ES2 support for almost all formats including Hi10P videos
* Real time preview
* Video capture in rgb and yuv format
* OSD and custom filters
* Filters in libavfilter, for example stero3d, blur
* Subtitle track select. Dynamic change FFmpeg and libass engine
* Play frame by frame
* Playback speed control
* Variant streams: locale file, http, rtsp etc. and your custom streams
* Audio channel, tracks and external audio tracks
* Dynamically change render engine when playing.
* Dynamically change video decoder
* Multiple video outputs for 1 player
* Video eq(software and OpenGL): brightness, contrast, saturation, hue
* QML support. Most playback APIs are compatible with QtMultimedia module
* Compatiblity: QtAV can be built with both Qt4 and Qt5, FFmpeg(>=1.0) and Libav (>=9.0). Latest FFmpeg release is recommended.
Extensible Framework
Some components in QtAV are designed to be extensible. For example, you can write your decoder, audio output for particular platform.