【发布时间】:2019-10-21 03:58:27
【问题描述】:
我正在使用 FFMPEG 库来获取视频上的水印戳。当我的项目的目标 SDK 版本为 28 时,它在所有版本中都像魅力一样工作,但是当我将目标 SDK 版本设置为 29 时,它给了我以下异常。
E/FFmpeg:尝试运行时出现异常:[Ljava.lang.java.io.IOException:无法“/data/user/0/com.videowatermark.addtextandtimestampongalleryvideos/files/ffmpeg”:错误=13,权限被拒绝
原因:java.io.IOException: error=13,在 java.lang.UNIXProcess.(UNIXProcess.java:133) 在 java.lang.ProcessImpl 的 java.lang.UNIXProcess.forkAndExec(Native Method) 的权限被拒绝.start(ProcessImpl.java:141) 在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 在 java.lang.Runtime.exec(Runtime.java:698) 在 java.lang.Runtime.exec(Runtime. java:563) 在 com.github.hiteshsondhi88.libffmpeg.ShellCommand.run(ShellCommand.java:10) 在 com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask.doInBackground(FFmpegExecuteAsyncTask.java:38) 在 com.github.hiteshsondhi88.libffmpeg .FFmpegExecuteAsyncTask.doInBackground(FFmpegExecuteAsyncTask.java:10) 在 android.os.AsyncTask$3.call(AsyncTask.java:378) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 android.os.AsyncTask $SerialExecutor$1.run(AsyncTask.java:289) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:641) 在 java.lang.Thread.run(Thread.java:919)
//显示这个错误
【问题讨论】:
-
这个错误什么时候来?我的意思是在哪个操作上?
-
当我为冲压过程选择视频&而不是 FFMPEG 命令通过时,它给出了异常。
-
你检查过你正在获取视频 uri 吗?可能的问题是
FileProvider。您是否在清单中定义了File Provider? -
是的,我检查过了,我正在获取视频 URI,我只遇到了 Android Q 的问题。
-
没有官方文档。
标签: android ffmpeg video-processing