私はこれらについてたくさんのスレッドを見ましたが、何も私の問題のために変更されていないようです。FFmpeg Audio Desync Issue
現在、私の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秒遅れていますが、私は誰もがアイデアを持っていたのだろうかと思いましたか?私はまだ働いていないフレームレートを手動で設定しようとしました。
もう1つ失敗した試みです。一緒に
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 + "\"");
入力&出力ファイルオフセット及び期間は、すべての罰金です、これを疑問視しないでください。
クイック編集!
入力ファイルは常に
別EDIT Iオフセット及び期間の引数を削除し、代わりにcopytsを使用する場合は、ファイル全体をMP4に変換され、音声が同期され.flvの拡張子が付いています。問題はオフセットとデュレーションにあるように思えます。なぜなら、私は2つ前にコピーを試みたのですが、まだそれはdesync'dでした。現在
元のコマンドで
ProcessBuilder builder = new
ProcessBuilder(
"cmd.exe", "/c", "ffmpeg -y -i " + "\"" + inputFile + "\"" + " -c copy -copyts " + "\"" + outputFile + "\"");
病気を試してみて、時間内にお知らせください。 –
何??これはどのように "受け入れ"の作品ではありません - でも何でも – gpasch
どのように?彼は私の質問に答えた。問題は、オーディオストリームをビデオと共に完全にコピーすることでした。 –