FFmpeg的低精度微调(FFmpeg low trim accuracy)

2019-10-29 18:52发布

所以,我试图削减了1分29秒视频成每30秒剪辑。 预期输出为30秒,30秒,29sec。 其结果是35秒,29sec,23sec。

这是我的代码 -

 ArrayList<String> commandList = new ArrayList<>();
            commandList.add("-ss");
            commandList.add("00:00:00");
            commandList.add("-i");
            commandList.add(videoPath);
            commandList.add("-c");
            commandList.add("copy");
            commandList.add("-f");
            commandList.add("segment");
            commandList.add("-segment_time");
            commandList.add("00:00:30");
            commandList.add(TEST.getAbsolutePath());
            String[] command  = commandList.toArray(new String[commandList.size()]);
            execFFmpegBinary(command);

任何想法,我做错了什么? 我读的地方,如果在特定位置上的关键帧不存在,它寻求最接近关键帧的位置。

任何解决方案或指导会帮助我。 先感谢您。

Answer 1:

FFmpeg的将关键帧开始段。 当使用-codec copy没有转码,所以必须使用现有的关键帧。 有一个在30年代没有关键帧,所以它减少在下一个。



文章来源: FFmpeg low trim accuracy