在android中的视频中添加文本水印

时间:2021-07-02 06:54:03

标签: android ffmpeg

我正在尝试在从我的移动应用程序中获取的视频中添加文本水印。 目前我正在使用 FFmpeg Library 但是当我尝试执行命令 ffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() {}

时它抛出权限错误(我认为它目前没有维护)

这就是我从应用程序重新编码视频的方式

Intent takeVideoIntent = new Intent( MediaStore.ACTION_VIDEO_CAPTURE);
launchTakeVideoActivity.launch(takeVideoIntent);

ActivityResultLauncher<Intent> launchTakeVideoActivity = 
registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
 if (result.getResultCode() == Activity.RESULT_OK) {
    Intent data = result.getData();
    Uri url = data.getData();
    String videoUrl = Util.getPathFromURI( getApplicationContext(),url );
    String path = "/storage/emulated/0/DCIM/Camera/VID.mp4";
    String[] cmd = Util.createCommand(videoUrl,customerInfo,path);
    Util.waterMark( videoUrl,path,getApplicationContext(),cmd );
    Log.d("LOGCAT", "Video path is: " + videoUrl);
   }
} );

但是因为在 Android 10 中我们不能在私有包中执行命令 my.app.package/files 它抛出权限错误。 我已经解决了 stackoverflow 提出的几个问题,但找不到合适的解决方案。 任何人都知道如何解决这个问题或任何其他好的免费库在视频上添加水印文本

1 个答案:

答案 0 :(得分:0)

您好,请尝试使用此库,因为它也支持新的 android 版本,如果您也想支持旧版本,请使用 lts 包,

https://github.com/tanersener/ffmpeg-kit

您也可以将视频保存在应用程序的内部 android 包文件夹中,例如Android/data/yourapppacakge/ 在那里创建一个文件夹并保存在那里