Android FFmpeg搜索(-ss)在某些设备上不工作

Android FFmpeg搜索(-ss)在某些设备上不工作,android,ffmpeg,Android,Ffmpeg,正如标题所述,-ss命令在某些设备上不起作用,如华为Mate 10 以下是我正在使用的命令以及如何获取值: 格式格式化程序=新的SimpleDataFormat(“00:“+”mm:ss.ss”); //视频持续时间 long duration=getDuration(); //视频持续时间除以6(我想得到5张图像) 长img1=持续时间/6; String firstThumbTime=formatter.format(img1); //屏幕尺寸偏差为7 字符串尺寸=宽度+“:”+高度; 字符

正如标题所述,
-ss
命令在某些设备上不起作用,如华为Mate 10

以下是我正在使用的命令以及如何获取值:

格式格式化程序=新的SimpleDataFormat(“00:“+”mm:ss.ss”);
//视频持续时间
long duration=getDuration();
//视频持续时间除以6(我想得到5张图像)
长img1=持续时间/6;
String firstThumbTime=formatter.format(img1);
//屏幕尺寸偏差为7
字符串尺寸=宽度+“:”+高度;
字符串[]a={“-ss”,firstThumbTime,“-i”,mStringFilePath,“-vframes”,“1”,“-s”,维度,imageThumbsDirectory+”/“+”thumb1.bmp“};
上面的命令如下所示:

-ss 00:00:00.47 -i /storage/emulated/0/Android/data/com.my.package/files/MyVideos/2020_02_19_16_00_20.mp4 -vframes 1 -s 154:274 /storage/emulated/0/Android/data/com.my.package/files/ThumbTemp/thumb1.bmp
奇怪的是,它完成时没有错误,但输出文件不可读

我目前没有日志,但我有一个用户,如果您需要,可以将其发送给我


我100%确信这是由
-ss
引起的,因为我在应用程序的其他地方使用了类似的命令来修剪视频,当用户导出视频而不设置修剪点(
-ss
)时,视频就工作了

下面是我用来修剪视频的2个命令:

工作:

String[] s = {"-i", videonInputPath, "-crf", "18", "-c:v", "libx264", "-preset", "ultrafast", videoOutputPath};
不工作

String[] s = {"-ss", startValue, "-i", videonInputPath, "-crf", "18", "-c:v", "libx264", "-preset", "ultrafast", videoOutputPath};

这是用户第一次向我发送此问题,所以它必须与他的设备有关

如有任何建议,将不胜感激


编辑:

String[] s = {"-i", videonInputPath, "-crf", "18", "-c:v", "libx264", "-preset", "ultrafast", videoOutputPath};
按照@Gyan在下面评论部分中的要求记录(在命令中添加了
-v48
):


这个问题与
FFmpeg
无关。这是我将时间转换为
HH:MM:SS.mmm
的方式。我使用以下方法修复了它:

私有字符串gethhmmss(长毫秒){
String hms=String.format(“%02d:%02d:%02d.%03d”,
时间单位。毫秒。至小时(毫秒),
TimeUnit.millizes.toMinutes(毫秒)%TimeUnit.HOURS.toMinutes(1),
TimeUnit.millizes.toSeconds(毫秒)%TimeUnit.MINUTES.toSeconds(1),
毫秒%1000);
返回hms;
}

共享完整日志。@Gyan请给我一些时间让用户将日志发送给我,我会在收到日志后立即更新我的问题。ffmpeg版本可能与平台无关;问题的根本原因很可能是输入文件的构造。@Gyan很抱歉等待太久,我不得不等待用户发送日志,请参见编辑1。@Gyan我还使用相同的输入文件从我的设备中包含了日志。