package org.ffmpeg.android.filters; import java.io.File; public class DrawTextVideoFilter extends VideoFilter { private String mX; private String mY; private String mText; private String mFontColor; private int mFontSize; private File mFileFont; private int mBox; private String mBoxColor; public final static String X_CENTERED = "(w-text_w)/2"; public final static String Y_CENTERED = "(h-text_h-line_h)/2"; public final static String X_LEFT = "0"; public final static String Y_BOTTOM = "(h-text_h-line_h)"; public DrawTextVideoFilter (String text) { mX = X_CENTERED; mY = Y_CENTERED; mText = text; mFontColor = "white"; mFontSize = 36; mFileFont = new File("/system/fonts/Roboto-Regular.ttf"); if (!mFileFont.exists()) mFileFont = new File("/system/fonts/DroidSerif-Regular.ttf"); mBox = 1; mBoxColor = "black@0.5";//0x00000000@1 } public DrawTextVideoFilter (String text, String x, String y, String fontColor, int fontSize, File fontFile, boolean showBox, String boxColor, String boxOpacity) { mX = x; mY = y; mText = text; mFontColor = fontColor; mFontSize = fontSize; mFileFont = fontFile; mBox = showBox? 1 : 0; mBoxColor = boxColor + '@' + boxOpacity; } @Override public String getFilterString() { StringBuffer result = new StringBuffer (); result.append("drawtext="); result.append("fontfile='").append(mFileFont.getAbsolutePath()).append("':"); result.append("text='").append(mText).append("':"); result.append("x=").append(mX).append(":"); result.append("y=").append(mY).append(":"); result.append("fontcolor=").append(mFontColor).append(":"); result.append("fontsize=").append(mFontSize).append(":"); result.append("box=").append(mBox).append(":"); result.append("boxcolor=").append(mBoxColor); return result.toString(); } } /* * //mdout.videoFilter = "drawtext=fontfile=/system/fonts/DroidSans.ttf: text='this is awesome':x=(w-text_w)/2:y=H-60 :fontcolor=white :box=1:boxcolor=0x00000000@1"; File fontFile = new File("/system/fonts/Roboto-Regular.ttf"); if (!fontFile.exists()) fontFile = new File("/system/fonts/DroidSans.ttf"); mdout.videoFilter = "drawtext=fontfile='" + fontFile.getAbsolutePath() + "':text='this is awesome':x=(main_w-text_w)/2:y=50:fontsize=24:fontcolor=white"; */ /** /system/fonts AndroidClock.ttf AndroidClock_Highlight.ttf AndroidClock_Solid.ttf AndroidEmoji.ttf AnjaliNewLipi-light.ttf Clockopia.ttf DroidNaskh-Regular-SystemUI.ttf DroidNaskh-Regular.ttf DroidSans-Bold.ttf DroidSans.ttf DroidSansArmenian.ttf DroidSansDevanagari-Regular.ttf DroidSansEthiopic-Regular.ttf DroidSansFallback.ttf DroidSansGeorgian.ttf DroidSansHebrew-Bold.ttf DroidSansHebrew-Regular.ttf DroidSansMono.ttf DroidSansTamil-Bold.ttf DroidSansTamil-Regular.ttf DroidSansThai.ttf DroidSerif-Bold.ttf DroidSerif-BoldItalic.ttf DroidSerif-Italic.ttf DroidSerif-Regular.ttf Lohit-Bengali.ttf Lohit-Kannada.ttf Lohit-Telugu.ttf MTLmr3m.ttf Roboto-Bold.ttf Roboto-BoldItalic.ttf Roboto-Italic.ttf Roboto-Light.ttf Roboto-LightItalic.ttf Roboto-Regular.ttf RobotoCondensed-Bold.ttf RobotoCondensed-BoldItalic.ttf RobotoCondensed-Italic.ttf RobotoCondensed-Regular.ttf */