Java FFmpeg音频去同步问题

Java FFmpeg音频去同步问题,java,audio,cmd,ffmpeg,synchronization,Java,Audio,Cmd,Ffmpeg,Synchronization,我已经看到了很多关于这些的帖子,但是对于我的问题似乎没有任何改变 目前在我的Java程序中,我正在调用命令行并使用此命令 ProcessBuilder builder = new ProcessBuilder( "cmd.exe", "/c", "ffmpeg -y -i " + "\"" + inputFile + "\" -vcodec libx264 -async 1 -f mp4 " + " -ss "

我已经看到了很多关于这些的帖子,但是对于我的问题似乎没有任何改变

目前在我的Java程序中,我正在调用命令行并使用此命令

ProcessBuilder builder = new 
                 ProcessBuilder(
                         "cmd.exe", "/c", "ffmpeg -y -i " + "\"" + inputFile + "\" -vcodec libx264 -async 1 -f mp4 " + " -ss " + offset + " -c copy -t " + duration + " " + "\"" + outputFile + "\"");
最初-vcodec、-async和-f mp4不在那里,但为了希望纠正音频,它们被放在了那里

音频延迟约1-2秒,我想知道是否有人有任何想法?我还尝试手动设置帧速率,但仍然没有成功

这是另一次失败的尝试

ProcessBuilder builder = new 
                 ProcessBuilder(
                         "cmd.exe", "/c", "ffmpeg -y -i " + "\"" + inputFile + "\" -vcodec libx264 -async 1 -acodec libfaac -ab 128k -ac 2 -bt 5000k -b 5000k -r 59.940 -threads 0 -f mp4 " + " -ss " + offset + " -c copy -t " + duration + " " + "\"" + outputFile + "\"");
输入和输出文件以及偏移量和持续时间都可以,请不要对此提出疑问

快速编辑

输入文件的扩展名始终为.flv

另一次编辑 当我删除offset和duration参数并改用copyts时,整个文件将转换为mp4,音频将同步。问题似乎在于偏移量和持续时间,因为我以前试过用这两个复制品,但仍然是desync的

当前

ProcessBuilder builder = new 
                 ProcessBuilder(
                         "cmd.exe", "/c", "ffmpeg -y -i " + "\"" + inputFile + "\"" + " -c copy -copyts " + "\"" + outputFile + "\"");

在原始命令(顶部的命令)中,将
-c copy
替换为
-c:a copy
。您可以摆脱
-async 1

我会尝试一下,并在一小时内告诉您什么??这不是“被接受”的工作方式,而是什么?他回答了我的问题lol。问题是将音频流完美地复制到视频中。