Files
QtAV/index.html
2014-03-14 21:53:20 +08:00

267 lines
11 KiB
HTML

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<title>QtAV by wang-bin</title>
<link rel="stylesheet" href="stylesheets/styles.css">
<link rel="stylesheet" href="stylesheets/pygment_trac.css">
<script src="javascripts/jquery-1.9.1.min.js"></script>
<script src="javascripts/respond.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!--[if lt IE 8]>
<link rel="stylesheet" href="stylesheets/ie.css">
<![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<script type="text/javascript">
if(!String.prototype.startsWith){
String.prototype.startsWith = function (str) {
return !this.indexOf(str);
}
}
var old = "http://wang-bin.github.io/QtAV";
if (location.href.startsWith(old)) {
var loc = location.href;
var suf = loc.substring(old.length, loc.length);
loc = "http://wang-bin.github.io/qtav.org" + suf;
window.location.replace(loc);
}
</script>
</head>
<body>
<div id="header">
<nav>
<li class="fork"><a href="https://github.com/wang-bin/QtAV">Fork On GitHub</a></li>
<!--
<li class="downloads"><a href="https://github.com/wang-bin/QtAV/zipball/master">ZIP</a></li>
<li class="downloads"><a href="https://github.com/wang-bin/QtAV/tarball/master">TAR</a></li>
-->
<li class="downloads"><a href="https://sourceforge.net/projects/qtav">Binary</a></li>
<li class="title">DOWNLOADS</li>
</nav>
</div><!-- end header -->
<div class="wrapper">
<section>
<div id="title">
<h1>QtAV</h1>
<p>A media playing framework based on Qt and FFmpeg. It helps you to write a player easily</p>
<p>基于Qt和FFmpeg的音视频播放框架</p>
<p id="license">Library license: LGPL v2.1 or later. Examples license: GPL v3</p>
<hr>
<span class="credits left">Project maintained by <a href="https://github.com/wang-bin">wang-bin</a></span>
<span class="credits right">Hosted on GitHub Pages &mdash; Theme by <a href="https://twitter.com/michigangraham">mattgraham</a></span>
</div>
<div>
<ul id="gallery">
<li><img src="screenshots/QtAV-based-QMLPlater-on-OSX.jpg" alt="QtAV based QMLPlayer on OSX" title="QtAV based QMLPlayer on OSX"></li>
<li><img src="screenshots/QMLPlayer-on-OSX.jpg" alt="QtAV based QMLPlayer on OSX" title="QtAV based QMLPlayer on OSX"></li>
<li><img src="screenshots/player-OSX.jpg" alt="QtAV based Player on OSX" title="QtAV based Player on OSX"></li>
<li><img src="screenshots/videowall.png" alt="Video Wall" title="Video Wall"></li>
<li><img src="screenshots/QMLPlayer+QtAV-on-Ubuntu.jpg" alt="QtAV based QMLPlayer on Ubuntu" title="QtAV based QMLPlayer on Ubuntu"></li>
<li><img src="screenshots/QMLPlayer-on-Android.jpg" alt="QtAV based QMLPlayer on Android" title="QtAV based QMLPlayer on Android"></li>
<li><img src="screenshots/QtAV+qmlvideofx_on_Olinuxino+cedar+hardware+decoding.jpg" alt="QtAV based qmlvideofx on Olinuxino + CedarV" title="QtAV based qmlvideofx on Olinuxino + CedarV"></li>
<li><img src="screenshots/ip_camera.jpg" alt="IP camera + QtAV" title="IP camera + QtAV on Fedora 18"></li>
</ul>
<script src="javascripts/jquery.easing.1.3.min.js"></script>
<script src="javascripts/jquery.flowgallery.js"></script>
<script>
$(function() {
$('#gallery').flowgallery({
easing: 'easeOutCubic',
//imagePadding: 6,
//thumbWidth: 120,
forceWidth: 580,
forceHeight: 380
});
});
</script>
</div>
<hr>
<script>
//https://developers.google.com/youtube/player_parameters#IFrame_Player_API
// Load the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.id = "ytjs";
tag.src = "https://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// Replace the 'ytplayer' element with an <iframe> and
// YouTube player after the API code downloads.
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('ytplayer', {
height: '390',
width: '640',
videoId: 'u3mvDe3GBPI'
});
}
</script>
<h1>
<a name="for-developers" class="anchor" href="#for-developers"><span class="octicon octicon-link"></span></a>For Developers</h1>
<p>Wrtie a media player using QtAV is quite easy. QtAV provide both Qt C++ and QML api. <strong>QML</strong> playback API is designed to compatible with QtMultiMedia</p>
<p>For more detail to using QtAV, see the wiki <a href="https://github.com/wang-bin/QtAV/wiki/Use-QtAV-In-Your-Projects">Use QtAV In Your Project</a> and <a href="https://github.com/wang-bin/QtAV/tree/master/examples">examples</a></p>
<p>Minimal player example</p>
<table style="width:100%">
<tr>
<td>C++</td>
<td>QML</td>
</tr>
<tr>
<td>
<pre><code>WidgetRenderer renderer;
renderer.show();
AVPlayer player;
player.setRenderer(&amp;renderer);
player.play("test.avi");
</code></pre>
</td>
<td>
<pre><code>import QtQuick 2.0
import QtAV 1.3
Item {
VideoOut {
anchors.fill: parent
source: player
}
AVPlayer { //or MediaPlayer
id: player
source: "test.mp4"
}
MouseArea {
anchors.fill: parent
onClicked: player.play()
}
}
</code></pre>
</td>
</tr>
</table>
<div id="features">
<h1>Features</h1>
<style type="text/css">
#features img {
max-width: 280px;
max-height: 120px;
}
</style>
<a href="http://qt-project.org/downloads"><img src="http://qt-project.org/images/qt13a/Qt-logo.png" alt="Qt" title="Qt4, 5"></a>
<a href="http://ffmpeg.org"><img src="http://ffmpeg.org/ffmpeg-logo.png" alt="FFmpeg" title="FFmpeg >= 0.9"></a>
<a href="http://libav.org"><img src="http://libav.org/libav-logo-text.png" alt="Libav"></a>
<img src="http://upload.wikimedia.org/wikipedia/en/8/8a/OpenGL_logo.jpg" alt="OpenGL" title="OpenGL/ES">
<img src="http://upload.wikimedia.org/wikipedia/en/9/9f/OpenGL_ES_logo.png" alt="OpenGL ES">
<img src="http://upload.wikimedia.org/wikipedia/zh/2/28/OpenAL_logo.png" alt="OpenAL">
<a href="http://www.portaudio.com/download.html"><img src="http://www.portaudio.com/images/portaudio_logotext.png" alt="PortAudio" title="PortAudio v19"></a>
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/Microsoft-DirectX-Logo-wordmark.svg/220px-Microsoft-DirectX-Logo-wordmark.svg.png" alt="DirectX">
</div>
<hr>
<div id="platforms">
<h1>Platforms</h1>
Windows, Linux, Mac OSX, Android, iOS, MeeGo, COS
<div id="ytplayer">
<h3>Video: QtAV based qmlvideofx with CedarV hardware decoding</h3>
</div>
</div>
<div id="todo">
<h1><a href="https://github.com/wang-bin/QtAV/wiki/TODO">TODO</a></h>
</div>
<div id="donate">
<hr><h1>
<a name="donate-%E8%B5%84%E5%8A%A9" class="anchor" href="#donate-%E8%B5%84%E5%8A%A9"><span class="octicon octicon-link"></span></a><a href="https://sourceforge.net/p/qtav/wiki/Donate%20%E6%8D%90%E8%B5%A0">Donate 资助</a>
</h1>
<script type="text/javascript" src="http://www.ohloh.net/p/678754/widgets/project_cocomo.js"></script>
<div>
<ul>
软件几乎由我一人利用空余学习和工作时间开发。如果您觉得不错,可以考虑资助一下。
<li>可用于购买硬件设备使QtAV更好的支持各种硬件,如AMD显卡,pi</li>
<li>iOS设备的开发环境</li>
</ul>
<ul>
This software is almost developed by myself. If you find the program useful and would like to support my efforts, please consider donating what you think the program is worth.
Donations are used solely for purchasing hardware to improve and extend QtAV.
<li>AMD graphics card</li>
<li>iOS development environment</li>
</ul>
</div>
<div>
<a href="https://www.gittip.com/wang-bin"><img src="https://rawgithub.com/twolfson/gittip-badge/0.1.0/dist/gittip.png" alt="Support via Gittip"></a>
</div>
<div>
<p><a href="https://me.alipay.com/lucaswang"><img src="https://img.alipay.com/sys/personalprod/style/mc/btn-index.png" alt="Alipay"></a></p>
</div>
<div>
<div>
<img width="50" height="35" src="https://www.paypalobjects.com/webstatic/mktg/logo/pp_cc_mark_37x23.jpg" alt="PayPal"></img><img src="http://upload.wikimedia.org/wikipedia/foundation/7/78/Credit_cards.png" alt="Visa, MasterCard, Discover, American Express, eCheck"></img>
</div>
<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="06122952wb@163.com">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="item_name" value="Donation for QtAV">
<input type="text" name="amount" value="8.00" onkeyup="if(!/^\d*.?\d{0,2}$/.test(this.value))this.value=this.value.replace(/[^\d.]/g,'').replace(/(^\d*.?\d{0,2}).*/g,'$1')">
<select name="currency_code">
<option value="USD" selected="selected">$ (USD)</option>
<option value="EUR">€ (EUR)</option>
<option value="HKD">$ (HKD)</option>
<option value="GBP">£ (GBP)</option>
<option value="CAD">$ (CAD)</option>
<option value="AUD">$ (AUD)</option>
<option value="JPY">¥ (JPY)</option>
</select>
<input type="image" src="http://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="Make payments with PayPal - it is fast, free and secure!">
<input type="image" src="http://www.paypal.com/zh_CN/i/btn/btn_donate_LG.gif" name="submit" alt="Make payments with PayPal - it is fast, free and secure!">
</form>
</div>
</div>
<hr>
<div id="clustrmaps-widget"></div><script type="text/javascript">var _clustrmaps = {'url' : 'http://wang-bin.github.io/QtAV', 'user' : 1135716, 'server' : '2', 'id' : 'clustrmaps-widget', 'version' : 1, 'date' : '2014-03-12', 'lang' : 'zh', 'corners' : 'square' };(function (){ var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'http://www2.clustrmaps.com/counter/map.js'; var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);})();</script><noscript><a href="http://www2.clustrmaps.com/user/116115464"><img src="http://www2.clustrmaps.com/stats/maps-no_clusters/wang-bin.github.io-QtAV-thumb.jpg" alt="Locations of visitors to this page" /></a></noscript>
<hr><blockquote>
<p>Copyright © Wang Bin <a href="mailto:wbsecg1@gmail.com">wbsecg1@gmail.com</a></p>
<p>Shanghai University-&gt;S3 Graphics, Shanghai, China</p>
<p>2012~2014</p>
</blockquote>
</section>
</div>
<!--[if !IE]><script>fixScale(document);</script><![endif]-->
</body>
</html>