iknow4x / Android-Video-Trimmer

The Android-Video-Trimmer project implements the selection of clips for long and short videos. It uses MediaMetadataRetriever to obtain video frames, and uses ffmpeg for video cropping and video compression.
Apache License 2.0
1.11k stars 264 forks source link

android Q 没有适配 #50

Open AmioLee opened 4 years ago

AmioLee commented 4 years ago

10以下系统没问题

iknow4x commented 4 years ago

能提供下详细的日志吗?

po1xiao commented 4 years ago

android Q报错:java.io.IOException: Cannot run program "/data/user/0/com.huaxinauction.chengjiao/files/ffmpeg": error=13, Permission denied

liangtian123 commented 4 years ago

那是因为安卓10不支持path直接访问文件了,两个解决办法:把sdk降到10以下,或者在AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true"

po1xiao commented 4 years ago

那是因为安卓10不支持path直接访问文件了,两个解决办法:把sdk降到10以下,或者在AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true"

AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true" 无效,目前把sdk降到28了

chinesebobo commented 4 years ago

那是因为安卓10不支持path直接访问文件了,两个解决办法:把sdk降到10以下,或者在AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true"

AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true" 无效,目前把sdk降到28了

你好 项目遇到了同样的问题 您解决了吗?

po1xiao commented 4 years ago

那是因为安卓10不支持path直接访问文件了,两个解决办法:把sdk降到10以下,或者在AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true"

AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true" 无效,目前把sdk降到28了

你好 项目遇到了同样的问题 您解决了吗?

下载这个库,引用到代码中,而不是使用implementation 'nl.bravobit:android-ffmpeg:1.1.7'

lodgkk commented 4 years ago

https://github.com/tanersener/mobile-ffmpeg可以更换到这个库

lodgkk commented 4 years ago

这个新的库的开始时间和时长不需要处理 开始时间的格式00:00:20 改为20 时长的格式00:00:10改为10,还有因为10的存储路劲的问题,从相册获取的的视频的路径都是content://media/开头的,这个路径要处理成真实路径

zxb123456 commented 4 years ago

这个问题有好的解决方法没有?可以提供下吗

shiv71 commented 4 years ago

I have updated my app to API level 29 so it broke my image picking mechanism. Earlier everything was working fine. Now when I searched over forums/StackOverflow I came to know that I have to migrate to a scoped storage framework in order to make it work. I found 2 things so far

  1. opt out of scoped storage
  2. Read the stream and write into the cache directory so that my app can access it.

My question is that is it mandatory to copy the file for using it. If yes I'm afraid to use this approach as it will consume lot of time because my app uses large videos that we upload to the server.

Is it possible to use this framework to just read the URI of image/video without copying to the cache directory? Did anyone working on it?

for reference, I followed these articles https://developer.android.com/guide/topics/providers/document-provider https://medium.com/@sriramaripirala/android-10-open-failed-eacces-permission-denied-da8b630a89df https://issuetracker.google.com/issues/130494105

We did a lot of searching over google and other forums but didn't found any way to fix the issue without point 2 mentioned above. We also don't want to opt-out as it will break in Android 11. We posted questions at several developer forums and websites but still unable to figure it out.

chinesebobo commented 4 years ago

这个新的库的开始时间和时长不需要处理 开始时间的格式00:00:20 改为20 时长的格式00:00:10改为10,还有因为10的存储路劲的问题,从相册获取的的视频的路径都是content://media/开头的,这个路径要处理成真实路径

你好 您给的https://github.com/tanersener/mobile-ffmpeg可以更换到这个库 这个库现在打开是404 有其他链接吗

chinesebobo commented 4 years ago

那是因为安卓10不支持path直接访问文件了,两个解决办法:把sdk降到10以下,或者在AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true"

AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true" 无效,目前把sdk降到28了

你好 项目遇到了同样的问题 您解决了吗?

下载这个库,引用到代码中,而不是使用implementation 'nl.bravobit:android-ffmpeg:1.1.7' 您好 下载您说的这个库替换调implementation 'nl.bravobit:android-ffmpeg:1.1.7'就可以了吗?

po1xiao commented 4 years ago

那是因为安卓10不支持path直接访问文件了,两个解决办法:把sdk降到10以下,或者在AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true"

AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true" 无效,目前把sdk降到28了

你好 项目遇到了同样的问题 您解决了吗?

下载这个库,引用到代码中,而不是使用implementation 'nl.bravobit:android-ffmpeg:1.1.7' 您好 下载您说的这个库替换调implementation 'nl.bravobit:android-ffmpeg:1.1.7'就可以了吗?

是的

po1xiao commented 4 years ago

这个新的库的开始时间和时长不需要处理 开始时间的格式00:00:20 改为20 时长的格式00:00:10改为10,还有因为10的存储路劲的问题,从相册获取的的视频的路径都是content://media/开头的,这个路径要处理成真实路径

你好 您给的https://github.com/tanersener/mobile-ffmpeg可以更换到这个库 这个库现在打开是404 有其他链接吗

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

chinesebobo commented 4 years ago

那是因为安卓10不支持path直接访问文件了,两个解决办法:把sdk降到10以下,或者在AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true"

AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true" 无效,目前把sdk降到28了

你好 项目遇到了同样的问题 您解决了吗?

下载这个库,引用到代码中,而不是使用implementation 'nl.bravobit:android-ffmpeg:1.1.7' 您好 下载您说的这个库替换调implementation 'nl.bravobit:android-ffmpeg:1.1.7'就可以了吗?

是的

感谢了 我试了下载zip包 但是下载到后期就是失败....

chinesebobo commented 4 years ago

这个新的库的开始时间和时长不需要处理 开始时间的格式00:00:20 改为20 时长的格式00:00:10改为10,还有因为10的存储路劲的问题,从相册获取的的视频的路径都是content://media/开头的,这个路径要处理成真实路径

你好 您给的https://github.com/tanersener/mobile-ffmpeg可以更换到这个库 这个库现在打开是404 有其他链接吗

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

谢谢

chinesebobo commented 4 years ago

那是因为安卓10不支持path直接访问文件了,两个解决办法:把sdk降到10以下,或者在AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true"

AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true" 无效,目前把sdk降到28了

你好 项目遇到了同样的问题 您解决了吗?

下载这个库,引用到代码中,而不是使用implementation 'nl.bravobit:android-ffmpeg:1.1.7' 您好 下载您说的这个库替换调implementation 'nl.bravobit:android-ffmpeg:1.1.7'就可以了吗?

是的

你好 能给个联系方式吗 请教你一个问题

chinesebobo commented 4 years ago

implementation 'nl.bravobit:android-ffmpeg:1.1.7'替换为implementation 'com.github.yangfeng1994:FFmpeg-Android:v2.0.1' 亲测有效,链接地址为 https://github.com/yangfeng1994/FFmpeg-Android 只需将VideoTrimmerUtil下trim 方法中的 FFmpeg.getInstance(context).execute(command, new ExecuteBinaryResponseHandler() {}这个更改为 FFmpegAsyncUtils asyncTask =new FFmpegAsyncUtils(); String finalOutputFile = outputFile; asyncTask.setCallback(new FFmpegExecuteCallback() {

  @Override
  public void onFFmpegStart() {
    callback.onStartTrim();
  }

  @Override
  public void onFFmpegSucceed(@Nullable String executeOutput) {
    callback.onFinishTrim(finalOutputFile);
  }

  @Override
  public void onFFmpegFailed(@Nullable String executeOutput) {

  }

  @Override
  public void onFFmpegProgress(@Nullable Integer progress) {

// fload mprogress = progress/执行视频文件或语音文件时长 }

  @Override
  public void onFFmpegCancel() {

  }
});
asyncTask.execute(command);

即可

po1xiao commented 4 years ago

那是因为安卓10不支持path直接访问文件了,两个解决办法:把sdk降到10以下,或者在AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true"

AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true" 无效,目前把sdk降到28了

你好 项目遇到了同样的问题 您解决了吗?

下载这个库,引用到代码中,而不是使用implementation 'nl.bravobit:android-ffmpeg:1.1.7' 您好 下载您说的这个库替换调implementation 'nl.bravobit:android-ffmpeg:1.1.7'就可以了吗?

是的

你好 能给个联系方式吗 请教你一个问题

qq:229605030

chinesebobo commented 4 years ago

谢谢

------------------ 原始邮件 ------------------ 发件人: "iknow4/Android-Video-Trimmer" <notifications@github.com>; 发送时间: 2020年10月29日(星期四) 晚上8:22 收件人: "iknow4/Android-Video-Trimmer"<Android-Video-Trimmer@noreply.github.com>; 抄送: "栀子花落"<261736658@qq.com>;"Comment"<comment@noreply.github.com>; 主题: Re: [iknow4/Android-Video-Trimmer] android Q 没有适配 (#50)

那是因为安卓10不支持path直接访问文件了,两个解决办法:把sdk降到10以下,或者在AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true"

AndroidManifest.xml文件加上android:requestLegacyExternalStorage="true" 无效,目前把sdk降到28了

你好 项目遇到了同样的问题 您解决了吗?

下载这个库,引用到代码中,而不是使用implementation 'nl.bravobit:android-ffmpeg:1.1.7' 您好 下载您说的这个库替换调implementation 'nl.bravobit:android-ffmpeg:1.1.7'就可以了吗?

是的

你好 能给个联系方式吗 请教你一个问题

qq:229605030

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.