Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A media playing framework based on Qt and FFmpeg. It helps you to write a player easily. 基于Qt和FFmpeg的音视频播放框架
Pull request Compare This branch is 2320 commits behind wang-bin:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
examples
i18n
res
src
tests
.gitignore
Changelog
QtAV.pro
README.md
TODO.txt
common.pri
gpl-3.0.txt
lgpl-2.1.txt

README.md

QtAV

QtAV is a media playing library based on Qt and FFmpeg. It can help you to write a player with less effort than ever before. Currently only a simple player is supplied. I will write a stylish one based on QtAV in the feature.

QtAV is free software licensed under the term of LGPL v2.1. If you use QtAV or its constituent libraries, you must adhere to the terms of the license in question.

Download binaries from sourceforge

Features

QtAV can meet your most demands

  • Seek, pause/resume
  • Video capture
  • Playing frame by frame (currently support forward playing)
  • Variant streams: locale file, http, rtsp, etc.
  • Playing music (not perfect)
  • Volume control
  • Fullscreen, stay on top
  • Compatible: QtAV can be built with both Qt4 and Qt5. QtAV will support both FFmpeg and Libav.

Extensible Framework (not finished)

QtAV currently uses FFmpeg to decode video, convert image and audio data, and uses PortAudio to play sound. Every part in QtAV is designed to be extensible. For example, you can write your audio output class using OpenAL, image converting class using cuda to get better performance etc. These features will be added in the feature by default.

For Developers

Requirements

  1. FFmpeg Latest version is recommanded
  2. Qt 4 or 5
  3. PortAudio v19

The required development files for MinGW can be found in sourceforge page: mingw_libs-extra.7z

Build

qmake
make

If you want to build QtAV outside the source tree

cd your_build_dir
qmake QtAV_dir/QtAV.pro -r "BUILD_DIR=your_build_dir"
make -j4

The binaries will be created in $BUILD_DIR/bin

NOTE: If you are using QtCreator to build the project, you should go to Projects->Build Steps->qmake->Additional arguments, add "BUILD_DIR=your/buid/dir"

How To Write a Player

Wrtie a media player using QtAV is quite easy.

WidgetRenderer renderer;
renderer.show();
AVPlayer player;
player.setRenderer(&renderer);
player.play("test.avi");

Default Shortcuts

  • Space: pause/continue
  • F: fullscreen on/off
  • T: stays on top on/off
  • N: show next frame. Continue the playing by pressing "Space"
  • O: open a file
  • P: replay
  • S: stop
  • M: mute on/off
  • Up / Down: volume + / -
  • -> / <-: seek forward / backward

The default behavior can be replaced by subclassing the EventFilter class.

TODO

  1. Component framework
  2. Subtitle
  3. Filters
  4. Hardware acceleration using NVIDIA Cuda, Intel IPP, OpenCL and OpenGL:
    • decoding
    • image, audio and filters convertion
    • rendering
  5. Stylish GUI based on Qt Graphics View Framework
  6. Document
  7. Other: play speed, better sync method and seeking, tests, playing statistics, more platforms etc.

Screenshots

QtAV on Win8

Alt text

IP camera using QtAV. OS: Fedora 18 (some developers from Italy)

Alt text

Copyright © Wang Bin wbsecg1@gmail.com

Shanghai University, Shanghai, China

2013-01-21

Something went wrong with that request. Please try again.