【发布时间】:2017-01-28 14:01:11
【问题描述】:
我已经看到很多关于这些的帖子,但我的问题似乎没有任何改变。
目前在我的 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
另一个编辑 当我删除偏移量和持续时间参数并改用 copyts 时,整个文件将转换为 mp4 并同步音频。问题似乎在于偏移量和持续时间,因为我之前尝试过使用这两个副本,但它仍然是不同步的。
当前
ProcessBuilder builder = new
ProcessBuilder(
"cmd.exe", "/c", "ffmpeg -y -i " + "\"" + inputFile + "\"" + " -c copy -copyts " + "\"" + outputFile + "\"");
【问题讨论】:
标签: java audio cmd ffmpeg synchronization