为什么视频不在android中使用ffmpeg保存给定路径?
我是ffmpeg新手,所以请帮助我使用ffmpeg命令将视频保存为给定路径。 我正在使用此命令保存视频,但无法保存。请帮忙,谢谢为什么视频不在android中使用ffmpeg保存给定路径?,android,ffmpeg,Android,Ffmpeg,我是ffmpeg新手,所以请帮助我使用ffmpeg命令将视频保存为给定路径。 我正在使用此命令保存视频,但无法保存。请帮忙,谢谢 String[] command_try = new String[13]; command_try[0] = "-i"; command_try[1] = "/sdcard/Videos/Videos/f2a804f062384d4da3995d3bdce15610.mp4"; command_try[
String[] command_try = new String[13];
command_try[0] = "-i";
command_try[1] = "/sdcard/Videos/Videos/f2a804f062384d4da3995d3bdce15610.mp4";
command_try[2] = "-i";
command_try[3] = "/sdcard/Videos/Videos/vidlogogif.gif";
command_try[4] = "-filter_complex";
command_try[5] = "overlay=(main_w-overlay_w)/2:y=(main_h-overlay_h)/2";
command_try[6] = "-pix_fmt";
command_try[7] = "yuv420p";
command_try[8] = "-c:a";
command_try[9] = "copy";
command_try[10] = "-preset";
command_try[11] = "ultrafast";
command_try[12] = "/sdcard/Videos/Videos/video11.mp4";
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
api>=23
如果设备的api
版本为>=23
,这将请求许可,如果低于23
,或者已经授予许可,则将执行下一个任务
如果用户拒绝权限,则权限对话框将调用代码>以请求许可
private void PermissionsDialog(final String[] s) {
ActivityCompat.requestPermissions(MainActivity.this, s, Helper.REQUEST_PERMISSION);
}
然后,如果用户允许
或拒绝
权限,则此方法会出现:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == Helper.REQUEST_PERMISSION) {
if (grantResults.length > 0) {
for (int grantResult : grantResults) {
if (grantResult != PackageManager.PERMISSION_GRANTED) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
!ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, permissions[0])) {
startActivityForResult(new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.parse("package:" + BuildConfig.APPLICATION_ID)), Helper.SETTINGS_CODE);
} else {
hasPermission();
}
} else {
// do something when you got permission
}
}
}
}
}
此方法检查是否授予权限,并继续请求权限,直到您允许
,如果您拒绝
使用不再请求
请求权限,则我们必须将用户导航到应用程序设置屏幕以手动允许权限
现在,当用户从设置屏幕onActivityResult(…)
中出来时,将调用活动的,这里调用haspmission()代码>用于重新检查用户是否从设置屏幕授予了权限,如下所示:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == Helper.SETTINGS_CODE) {
hasPermission();
}
}
第一步是向清单文件添加权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Android应用程序要求用户对api>=23
如果设备的api
版本为>=23
,这将请求许可,如果低于23
,或者已经授予许可,则将执行下一个任务
如果用户拒绝权限,则权限对话框将调用代码>以请求许可
private void PermissionsDialog(final String[] s) {
ActivityCompat.requestPermissions(MainActivity.this, s, Helper.REQUEST_PERMISSION);
}
然后,如果用户允许
或拒绝
权限,则此方法会出现:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == Helper.REQUEST_PERMISSION) {
if (grantResults.length > 0) {
for (int grantResult : grantResults) {
if (grantResult != PackageManager.PERMISSION_GRANTED) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
!ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, permissions[0])) {
startActivityForResult(new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.parse("package:" + BuildConfig.APPLICATION_ID)), Helper.SETTINGS_CODE);
} else {
hasPermission();
}
} else {
// do something when you got permission
}
}
}
}
}
此方法检查是否授予权限,并继续请求权限,直到您允许
,如果您拒绝
使用不再请求
请求权限,则我们必须将用户导航到应用程序设置屏幕以手动允许权限
现在,当用户从设置屏幕onActivityResult(…)
中出来时,将调用活动的,这里调用haspmission()代码>用于重新检查用户是否从设置屏幕授予了权限,如下所示:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == Helper.SETTINGS_CODE) {
hasPermission();
}
}
如果无法执行,您将收到错误消息或异常。通知我们。@blackapps没有任何错误或例外我认为这是一个未执行的命令,出现了一些问题。您是否为读/写内部存储添加了权限代码
,如果没有添加,并且如果您使用的是android10
,则添加android:requestLegacyExternalStorage=“true”
到清单文件的…
tag@VivekThummar请在这里添加代码以获得许可。谢谢你!如果无法执行,您将收到错误消息或异常。通知我们。@blackapps没有任何错误或例外我认为这是一个未执行的命令,出现了一些问题。您是否为读/写内部存储添加了权限代码
,如果没有添加,并且如果您使用的是android10
,则添加android:requestLegacyExternalStorage=“true”
到清单文件的…
tag@VivekThummar请在这里添加代码以获得许可。谢谢你!谢谢我会用这个密码对不起,我的名声不好,稍后再做:-)您好,您可以在这里添加Helper类吗?我不知道这里必须使用哪个Helper类。它只是用于公共变量和Helper….
是requestCode
的变量,例如:int REQUEST\u PERMISSION=101
和int SETTINGS\u code=101
。谢谢!我会用这个密码对不起,我的名声不好,稍后再做:-)您好,您可以在这里添加Helper类吗?我不知道这里必须使用哪个Helper类。它只是用于公共变量和Helper….
是requestCode
的变量,例如:int REQUEST\u PERMISSION=101
和int SETTINGS\u code=101
。