1. 程式人生 > >Android 用ffmpeg生成Gif 各種排列組合的效能測試結果

Android 用ffmpeg生成Gif 各種排列組合的效能測試結果

    public String water_mark(String input1, String input2) {
        String output = getTmpPath("")+"output.mp4";

        String merge = "ffmpeg -i "+input1+" -y -strict -2 -vf movie="+input2+"[watermark];[in][watermark]overlay=0:0[out] "+output;

        runParams(merge.split(" "));
        return output;

    }

    public 
String mp42gif(String input1,String input2){ String[] params = new String[8]; params[0] = "ffmpeg"; params[1] = "-i"; params[2] = input1; params[3] = "-t"; params[4] = "5"; params[5] = "-pix_fmt"; params[6] = "rgb24"; String DCIM = Environment.getExternalStorageDirectory
() + File.separator + Environment.DIRECTORY_DCIM + File.separator; params[7] = input2; runParams(params); return null; } public String video_merge_gif(String input1, String input2){ String[] params = new String[4]; params[0] = "ffmpeg"; params[1
] = "-i"; params[2] = input1; String DCIM = Environment.getExternalStorageDirectory() + File.separator + Environment.DIRECTORY_DCIM + File.separator; params[3] = DCIM+"image%d.jpg"; runParams(params); return null; } public String gif2mp4(String input1, String input2){ String[] params = new String[4]; params[0] = "ffmpeg"; params[1] = "-i"; params[2] = input1; params[3] = input2; runParams(params); return null; } public String video_merge_test(String input1, String input2,ArrayList<ScaleAndRotateGifView> viewArrayList,String output){ // String test = "ffmpeg -y -i "+input1+" -i "+input2; int k=0; for(ScaleAndRotateGifView view:viewArrayList){ Utility.copyFile(view.getImagePath(), getTmpPath(k + "") + ".gif"); // test+=" -ignore_loop 0 -i "+getTmpPath(k+"")+".gif"; k++; } // test+=" -strict -2 -filter_complex [0:0]pad=iw:ih[a];[a][1:0]overlay=0"; // char temp = 'b'; // int i = 2; // for(ScaleAndRotateGifView view:viewArrayList){ // test+="["+temp+"];["+temp+"]["+i+":0]overlay=0:h"; // temp++; // i++; // } // test+=" -shortest "+output; String test="ffmpeg -y -i "+input1+" -i "+input2+" -ignore_loop 0 -i "+getTmpPath("0.gif")+" -ignore_loop 0 -i "+getTmpPath("1.gif")+" -strict -2 -filter_complex [0:0]pad=iw:ih[a];[a][1:0]overlay=0[b];[b][2:0]overlay=0:h[c];[c][3:0]overlay=w:h -shortest "+output; String[] params = test.split(" "); runParams(params); return null; } public String splitGif(String input1,String input2){ String[] params = new String[6]; params[0] = "ffmpeg"; params[1] = "-i"; params[2] = input1; params[3] = "-r"; params[4] = "10"; params[5] = input2; App.getCurrentApp().runParams(params); return null; } public String preparePalettegen(){ String input1 = DCIM + "testgif" + (it + 1) + ".jpg"; String tempPNG = App.getCurrentApp().getTmpPath("palettegen.png"); String param = "ffmpeg -y -i " + input1 + " -vf palettegen -y " + tempPNG; App.getCurrentApp().runParams(param.split(" ")); return tempPNG; } public String img2gif(String input1,String input2){ String tempPNG = preparePalettegen(); String command = "ffmpeg -f image2 -framerate 5 -i "+input1+" -i "+tempPNG+" -filter_complex fps=10,scale=320:-1:flags=lanczos[x];[x][1:v]paletteuse "+input2; String[] params = command.split(" "); App.getCurrentApp().runParams(params); return null; }

相關推薦

Android ffmpeg生成Gif 各種排列組合效能測試結果

public String water_mark(String input1, String input2) { String output = getTmpPath("")+"output.mp4"; String merge = "ffmpeg -i "+inp

(轉)各種排列組合的數的公式和推導

原貼地址:https://blog.csdn.net/qq_36808030/article/details/75045129?utm_source=blogxgwz0 一、排列(在乎順序) 全排列:P(n,n)=n! n個人都排隊。第一個位置可以選n個,第二位置可以選n-1個,以此類推

各種排列組合奇怪的數的公式和推導

(偽)前言 啊複習初賽看到排列組合那塊,找個推導都難!真是的! 正文 一、排列(在乎順序) 全排列:P(n,n)=n! n個人都排隊。第一個位置可以選n個,第二位置可以選n-1個,以此類推得: P(

AndroidClipDrawable自定義各種進度條(包括豎直和水平)

這裡兩年前在eoe寫的一個帖子,這次也搬過來統一管理: ============== 以前我自定義的進度條是從android的原始碼中扒出來的一個XML,然後把裡面的圖片給替換了。一直不知道它的具體原

點選事件的座標計算(client || offset) +(X || Width || Left) 各種排列組合別繞暈

結論: 1,X,Y的都是屬於點選位置的,width、height、left、top都是屬於DOM的。 2,涉及的所有位置只與document或DOM內部有關,與DOM如何定位,周圍有沒有其他佔位HTML元素,DOM有沒有父級元素等統統無關。 說明:每次點選都是點選綠色方塊的中心點,綠色方塊的CSS程式碼

ArrayList和LinkedList的幾種迴圈遍歷方式及效能對比分析 主要介紹ArrayList和LinkedList這兩種list的五種迴圈遍歷方式,各種方式的效能測試對比,根據ArrayLis

主要介紹ArrayList和LinkedList這兩種list的五種迴圈遍歷方式,各種方式的效能測試對比,根據ArrayList和LinkedList的原始碼實現分析效能結果,總結結論。 通過本文你可以瞭解(1)List的五種遍歷方式及各自效能 (2)foreach及Iterator的實現 (3)加

Android NDK編譯FFmpeg生成Android.mk可以放在原始碼框架內編譯)

mkdir jni && cd jni wget http://ffmpeg.org/releases/ffmpeg-0.6.tar.bz2 tar xf ffmpeg-0.6.tar.bz2 && mv ffmpeg-0.6 ffmpeg && cd

hdu 1521 排列組合【指數型生成函式】

根據套路列出式子:\( \prod_{i=1}^{n}\sum_{j=0}^{c[i]}\frac{x^j}{j!} \),然後暴力展開即可 #include<iostream> #include<cstdio> #include<cstring> using names

hdu 1521 排列組合 —— 指數型生成函數

turn col color 函數 font 強制轉換 print size using 題目:http://acm.hdu.edu.cn/showproblem.php?pid=1521 標準的指數型生成函數; WA了好幾遍,原來是多組數據啊囧; 註意精度,直接強制轉換(

dfs生成排列組合模板

列舉可重複排列的模板 [cpp]  view plain  copy   #include<iostream>&

AndroidZxing掃二維碼/生成二維碼功能

新年已過,一切恢復真正常,新的一年給自己幾句指引: 光努力還不行,方向很重要。 總是想著最壞的結果,就會讓人失去改變的勇氣。 你當然有權利選擇自己的人生--但只有在你真正強大後,逆行的阻力才會降到最小。 never say never. 下面開始記錄二維碼使用過程

Android Java程式碼編寫一款動態生成幸運數字的小遊戲

  截圖: 程式碼如下:   第三方依賴庫地址:https://github.com/AndroidMsky/RandomTextView 第一步:新增倉庫 allprojects { repositories { ... maven {

Android專案自動生成build.xml,Ant打包

Android本身是支援ant打包專案的,並且SDK中自帶一個build.xml檔案。 通過該檔案,可以對檔案進行編譯、打包、安裝等。 並且支援多種方式打包,如debug或者release。 在使用Ant構建打包之前 一、生成build.xml Eclipse中使用Ant為Andro

GIF圖片】PS生成背景透明的GIF圖片出現幀疊加的現象

在網上找到的一些gif圖片是帶黑色背景的,匯入Flash以後黑色背景仍然存在,這個時候就需要用PS來除掉黑色背景了。 以下圖為例子: 第一步:先把它匯入PS中。 第二步:檔案→儲存為Web和裝置所用

【原創】開源.NET排列組合元件KwCombinatorics使用(二)——排列生成

前言   本文今天介紹的.NET開源元件是KwCombinatorics,它是.NET平臺一個高效的生成排列組合序列的開源類庫,它提供了4種生成排列與組合序列的方式。雖然原理和功能都很簡單,但是這個類庫在軟體測試、組合數學以及密碼學等方面都有很大的用處。很早就接觸了這個類庫,以前在一些小程式

【原創】開源.NET排列組合元件KwCombinatorics使用(一)—組合生成

1.Combination類基本介紹   Combination類是根據指定的物件列表,依次升序選擇非重複數字的組合序列,重複是什麼意思呢?就是指定序列中的元素不重複選擇2次。舉個例子:從 0,1,2,3這4個數中,取出3個元素組成序列,那麼共有這麼幾種組合方式:{0,1,2},{0,1,3},{0,2

利用Android Studio自帶螢幕錄製功能,生成GIF圖片

一篇好的博文總是離不開有圖有真相,每次開啟一篇部落格,我們總是第一眼希望看到的不是demo原始碼,而是該demo執行的效果畫面。相信大家肯定和我一樣,總是想先看到結果之後再去深究其原始碼。本文將介紹如何使用Android studio自帶螢幕錄製功能生成一個APP執行時的G

Android截圖如何生成gif動態圖

我們在部落格裡面經常看到有人上傳的截圖是動態的,即gif格式,那麼截圖怎麼生成gif格式的圖片呢? 所需工具 ①視訊截圖工具:用Android Studio開發Android的人,應該都知道,And

Android實現文字生成圖片

效果圖 我們先來看看效果圖,可以看到下圖由各種顏色的”美”字拼接而成,形成了一張不一樣的圖片。 原理 生成這種圖片的原理很簡單,但是當時看開源專案時愣是看不懂,因為沒學過Python,但是仔細研究,終於能慢慢的理解該開源專案原始碼,並把它改寫成An

Android之多執行緒生成GIF

本文主要是記錄一下修改他人原始碼 原作者是在單執行緒裡處理的,將其修改為多執行緒處理 本篇所涉及內容在一個單獨的gifencoder包下,使用在mainactivity裡 主其實還是使用的原作者