forked from cropsly/ffmpeg-android-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
211 lines (173 loc) · 11.2 KB
/
index.html
File metadata and controls
211 lines (173 loc) · 11.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="description" content="FFmpeg Android Java : Android java library for FFmpeg binary compiled using https://github.com/writingminds/ffmpeg-android">
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
<title>FFmpeg Android Java</title>
</head>
<body>
<!-- HEADER -->
<div id="header_wrap" class="outer">
<header class="inner">
<div id="github_banner_id">
<ul>
<li><a class="github_banner" href="https://github.com/writingminds/ffmpeg-android-java">Fork me on GitHub</a></li>
<li><a class="github_banner" href="http://writingminds.github.io/ffmpeg-android-java/docs/">Java Docs</a></li>
<li><a class="wm_banner" href="http://www.writingminds.com">HIRE US</a></li>
</ul>
</div>
<h1 id="project_title">FFmpeg Android Java</h1>
<h2 id="project_tagline">Android java library for FFmpeg binary compiled using https://github.com/writingminds/ffmpeg-android</h2>
<section id="downloads">
<a class="zip_download_link" href="https://github.com/writingminds/ffmpeg-android-java/zipball/master">Download this project as a .zip file</a>
<a class="tar_download_link" href="https://github.com/writingminds/ffmpeg-android-java/tarball/master">Download this project as a tar.gz file</a>
</section>
</header>
</div>
<!-- MAIN CONTENT -->
<div id="main_content_wrap" class="outer">
<section id="main_content" class="inner">
<h1>
<a name="ffmpeg-android-java" class="anchor" href="#ffmpeg-android-java"><span class="octicon octicon-link"></span></a><a href="http://writingminds.github.io/ffmpeg-android-java/">FFmpeg Android Java</a>
</h1>
<ul>
<li>FFmpeg for Android compiled with x264, libass, fontconfig, freetype, fribidi and LAME</li>
<li>Supports Android 4.1+</li>
</ul><h2>
<a name="supported-architecture" class="anchor" href="#supported-architecture"><span class="octicon octicon-link"></span></a>Supported Architecture</h2>
<ul>
<li>armv7</li>
<li>armv7-neon</li>
<li>armv8</li>
<li>x86</li>
<li>x86_64</li>
</ul>
<h2><a name="adding-library-to-project-android-studio" class="anchor" href="#adding-library-to-project-android-studio"><span class="octicon octicon-link"></span></a>Adding Library to Project</h2>
<ul>
<li>
Download and copy <a href="https://oss.sonatype.org/content/repositories/releases/com/writingminds/FFmpegAndroid/0.3.2/FFmpegAndroid-0.3.2.aar">AAR File</a> to app/libs
and add to your app/build.gradle file</br>
<div class="highlight highlight-groovy">
<pre><span class="n">repositories</span> <span class="o">{</span>
<span class="n">flatDir</span> <span class="o">{</span>
<span class="n">dirs</span> <span class="s1">'libs'</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="n">dependencies</span> <span class="o">{</span>
<span class="n">compile</span><span class="o">(</span><span class="nl">name:</span><span class="s1">'FFmpegAndroid'</span><span class="o">,</span> <span class="nl">ext:</span><span class="s1">'aar'</span><span class="o">)</span>
<span class="o">}</span>
</pre></div>
</li>
<li>
Or Grab via gradle
<pre><code>compile 'com.writingminds:FFmpegAndroid:0.3.2'</code></pre>
</li>
<li>
Or Maven<pre><code><dependency>
<groupId>com.writingminds</groupId>
<artifactId>FFmpegAndroid</artifactId>
<version>0.3.2</version>
</dependency></code></pre>
</li>
</ul>
<h2>
<a name="usage" class="anchor" href="#usage"><span class="octicon octicon-link"></span></a>Usage</h2>
<h3>
<a name="load-binary" class="anchor" href="#load-binary"><span class="octicon octicon-link"></span></a>Load Binary</h3>
<p>This method copies the ffmpeg binary to device according to device's architecture. You just need to put this once in your code,
whenever you are starting the application or using FFmpeg for the first time. This command does the following:</p>
<ul>
<li>Loads/Copies binary to device according to architecture</li>
<li>Updates binary if it is using old FFmpeg version</li>
<li>Provides callbacks through FFmpegLoadBinaryResponseHandler interface</li>
</ul><div class="highlight highlight-java"><pre><span class="n">FFmpeg</span> <span class="n">ffmpeg</span> <span class="o">=</span> <span class="n">FFmpeg</span><span class="o">.</span><span class="na">getInstance</span><span class="o">(</span><span class="n">context</span><span class="o">);</span>
<span class="k">try</span> <span class="o">{</span>
<span class="n">ffmpeg</span><span class="o">.</span><span class="na">loadBinary</span><span class="o">(</span><span class="k">new</span> <span class="nf">LoadBinaryResponseHandler</span><span class="o">()</span> <span class="o">{</span>
<span class="nd">@Override</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">onStart</span><span class="o">()</span> <span class="o">{}</span>
<span class="nd">@Override</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">onFailure</span><span class="o">()</span> <span class="o">{}</span>
<span class="nd">@Override</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">onSuccess</span><span class="o">()</span> <span class="o">{}</span>
<span class="nd">@Override</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">onFinish</span><span class="o">()</span> <span class="o">{}</span>
<span class="o">});</span>
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">FFmpegNotSupportedException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
<span class="c1">// Handle if FFmpeg is not supported by device</span>
<span class="o">}</span>
</pre></div>
<h3>
<a name="execute-binary" class="anchor" href="#execute-binary"><span class="octicon octicon-link"></span></a>Execute Binary</h3>
<p>This method executes ffmpeg command and provides callback through FFmpegExecuteResponseHandler interface. You also need to pass command as argument
to this method.</p>
<ul>
<li>To execute "ffmpeg -version" command you just need to pass "-version" as cmd parameter.</li>
</ul><div class="highlight highlight-java"><pre><span class="n">FFmpeg</span> <span class="n">ffmpeg</span> <span class="o">=</span> <span class="n">FFmpeg</span><span class="o">.</span><span class="na">getInstance</span><span class="o">(</span><span class="n">context</span><span class="o">);</span>
<span class="k">try</span> <span class="o">{</span>
<span class="c1">// to execute "ffmpeg -version" command you just need to pass "-version"</span>
<span class="n">ffmpeg</span><span class="o">.</span><span class="na">execute</span><span class="o">(</span><span class="n">cmd</span><span class="o">,</span> <span class="k">new</span> <span class="nf">ExecuteBinaryResponseHandler</span><span class="o">()</span> <span class="o">{</span>
<span class="nd">@Override</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">onStart</span><span class="o">()</span> <span class="o">{}</span>
<span class="nd">@Override</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">onProgress</span><span class="o">(</span><span class="n">String</span> <span class="n">message</span><span class="o">)</span> <span class="o">{}</span>
<span class="nd">@Override</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">onFailure</span><span class="o">(</span><span class="n">String</span> <span class="n">message</span><span class="o">)</span> <span class="o">{}</span>
<span class="nd">@Override</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">onSuccess</span><span class="o">(</span><span class="n">String</span> <span class="n">message</span><span class="o">)</span> <span class="o">{}</span>
<span class="nd">@Override</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">onFinish</span><span class="o">()</span> <span class="o">{}</span>
<span class="o">});</span>
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">FFmpegCommandAlreadyRunningException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
<span class="c1">// Handle if FFmpeg is already running</span>
<span class="o">}</span>
</pre></div>
<h2>
<a name="available-methods" class="anchor" href="#available-methods"><span class="octicon octicon-link"></span></a>Available Methods</h2>
<ul>
<li><code>loadBinary(FFmpegLoadBinaryResponseHandler ffmpegLoadBinaryResponseHandler) throws FFmpegNotSupportedException</code></li>
<li><code>execute(Map<String, String> environvenmentVars, String cmd, FFmpegExecuteResponseHandler ffmpegExecuteResponseHandler) throws FFmpegCommandAlreadyRunningException</code></li>
<li><code>execute(String cmd, FFmpegExecuteResponseHandler ffmpegExecuteResponseHandler) throws FFmpegCommandAlreadyRunningException</code></li>
<li><code>getDeviceFFmpegVersion() throws FFmpegCommandAlreadyRunningException</code></li>
<li><code>getLibraryFFmpegVersion()</code></li>
<li><code>isFFmpegCommandRunning()</code></li>
<li><code>killRunningProcesses()</code></li>
<li><code>setTimeout(long timeout)</code></li>
</ul>
<h2>
<a name="sample_application" class="anchor" href="#sample"><span class="octicon octicon-link"></span></a>Sample Application</h2>
<img src="http://i.imgur.com/cP4WhLn.gif" alt="Sample ffmpeg library gif"/>
<ul>
<li><a href="https://github.com/writingminds/ffmpeg-android-java/releases/download/v0.3.2/app-debug.apk">Download APK</a></li>
</ul>
<h2>
<a name="javadoc" class="anchor" href="#javadoc"><span class="octicon octicon-link"></span></a>JavaDoc</h2>
<ul>
<li><a href="http://writingminds.github.io/ffmpeg-android-java/docs/">Javadoc</a></li>
</ul><h2>
<a name="license" class="anchor" href="#license"><span class="octicon octicon-link"></span></a>License</h2>
<ul>
<li>Check file LICENSE.GPLv3 and Make sure to follow the licensing terms and conditions of the project and the software used to build the project.</li>
</ul>
</section>
</div>
<!-- FOOTER -->
<div id="footer_wrap" class="outer">
<footer class="inner">
<p class="copyright">FFmpeg Android Java maintained by <a href="https://github.com/hiteshsondhi88">hiteshsondhi88</a></p>
<p>Published with <a href="http://pages.github.com">GitHub Pages</a></p>
</footer>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-54645862-1");
pageTracker._trackPageview();
} catch(err) {}
</script>
</body>
</html>