Как добавить водяной знак как ti c tok, используя ffmpeg в android studio - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь добавить Watermark Like Ti c Tok, используя FFMPEG, но он не работает

        GeneralUtils.checkForPermissionsMAndAbove(MainActivity.this, true);
        LoadJNI vk = new LoadJNI();
        try {

            //String complexCommand = "ffmpeg -y -i /storage/emulated/0/in.mp4 -strict experimental -vf transpose=1 -s 160x120 -r 30 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k /storage/emulated/0/out.mp4";
            /*String complexCommand = "ffmpeg -i /storage/emulated/0/in.mp4 -framerate 30000/1001 -loop 1 -i /storage/emulated/0/abcd.jpg -filter_complex\n" +
                    "  \"[1:v] fade=out:st=30:d=1:alpha=1 [ov]; [0:v][ov] overlay=10:10 [v]\" -map \"[v]\"\n" +
                    "  -map 0:a -c:v libx264 -c:a copy -shortest /storage/emulated/0/out.mp4";*/
            //String complexCommand = "ffmpeg -y -i /storage/emulated/0/in.mp4 -strict experimental -vf movie=/storage/emulated/0/abcd.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out] -s 320x240 -r 30 -b 15496k -vcodec mpeg4 -ab 48000 -ac 2 -ar 22050 /storage/emulated/0/out.mp4";
            String complexCommand = "ffmpeg -i /storage/emulated/0/in.mp4 -i /storage/emulated/0/abcd.jpg -filter_complex \\\n" +
                    "\"overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2\" \\\n" +
                    "-codec:a copy /storage/emulated/0/out.mp4";

            String workFolder = getApplicationContext().getFilesDir().getAbsolutePath();
            //String[] complexCommand = {"ffmpeg","-i", "/sdcard/videokit/in.mp4"};
             vk.run(GeneralUtils.utilConvertToComplex(complexCommand) , workFolder , getApplicationContext());

            Log.i("test", "ffmpeg4android finished successfully");
        } catch (Throwable e) {
            Log.e("test", "vk run exception.", e);
        }

, но отмечаю работу для меня

, так как вы можете не знать о FFMPEG поэтому, если вы дадите ответ, пожалуйста, напишите вкратце.

спасибо.

1 Ответ

0 голосов
/ 12 апреля 2020

НАЧАТЬ ЗДЕСЬ https://drive.google.com/file/d/0B2aT0QoEmtuaN0VJZ2Z4ODY3T2s/view Файл => Новый => модуль импорта => go найти папку, загруженную на шаге 1:

ffmpeg4android_demo_studio \ ffmpeg4android_lib

Добавить разрешение в AndroidManifest. xml

, если версия выше Android 6, добавьте следующий код в onCreate () вашей Деятельности

 GeneralUtils.checkForPermissionsMAndAbove(MainActivity.this, false);

Alt + Enter, если встречается красный шрифт, AndroidStudio поможет вам изменить «build.gradle (Module)»

(не уверен, если это необходимо) В build.gradle (Module)

Android {. ...... defaultConfig {.... targetSdkVersion ... ndk {abiFilter "armeabi-v7a"}}} ..... dependencies {... compile project (': ffmpeg4android_lib')}

добавить следующий код в "gradle.properties"

android .useDeprecatedNdk = true

и затем проект asyn c Как использовать WaterMarkHelper (автор Johnny Tu) для добавления водяного знака на видео После импорта "WaterMarkHelper. java" в ваш проект, заявите следующее в вашей деятельности

Вода MarkHelper myHelper;

инициализировать myHelper аргументами

Описание аргументов:

 String inputVideoPath        (ex:"/sdcard/input.mp4")
 String inputWaterMarkPath    (ex:"/sdcard/waterMark.png")
 String outputVideoPath        (ex:"/sdcard/output.mp4")
 String waterMarkX        the X-coordinate    
     Video width: main_w, Video height: main_h, Image Width: overlay_w, Image Height: overlay_h
 String waterMarkY

Загрузить это

...