String[] code = new String[]{"ffmpeg", "-i","D:/ffmpeg/20170201_164127.mp4",
"-i","D:/ffmpeg/cc.png", "-filter_complex",
"[0:v][1:v]overlay=main_w-overlay_w-5:main_h-overlay_h-5",
"drawtext=fontfile=/ffmpeg/Arial.ttf:text='TESTING'[email protected]:fontsize=70:x=10:y=H-th-10:box=1:[email protected]:boxborderw=5:x=10:y=H-th-10",
"[out]","-map", "[out]", "-map", "2:0",
"-acodec","mp3", "D:/ffmpeg/test7.mp4"};
Process processDuration = new ProcessBuilder(code).redirectErrorStream(true).start();
StringBuilder strBuild = new StringBuilder();
try (BufferedReader processOutputReader = new BufferedReader(new InputStreamReader(processDuration.getInputStream(), Charset.defaultCharset()));) {
String line;
while ((line = processOutputReader.readLine()) != null) {
strBuild.append(line + System.lineSeparator());
}
processDuration.waitFor();
}
String outputJson = strBuild.toString().trim();
System.out.println(outputJson);
}
画像のみを使用すると、コードが正しく表示されます。私はすべてのコードを使用している場合しかし、これは起こる:ffmpeg - javaを使用してビデオに画像とテキストを挿入する方法
[NULL @ 00000000006abe60] に適した出力形式を見つけることができません 'のDrawText = fontfile =/ffmpegの/ arial.ttfの:テキスト=' TESTING'fontcolor =白@ = 10:y = H-th-10 ' drawtext = fontfile = 10:y = H-th-10:box = 1:[email protected]:boxborderw = 5:x = 10:y = /ffmpeg/Arial.ttf:text='TESTING'[email protected]:fontsize=70:x=10:y=H-th-10:box=1:[email protected]:boxborderw=5:x= 10:Y = H-TH-10: 無効な引数それはそうように、スペースがエラーを説明すること、その後、文字列内の各引数の後に挿入され、場合
詳細を追加してください:CMDでそのコマンドを実行しようとするとどうなりますか?このメッセージは何から来ますか(例外がスローされ、標準出力ストリーム、エラーストリーム)? –
あなたはdrawtextフィルタが出力ファイルであることを 'ffmpeg'に伝えています。私はJavaユーザーではありませんが、引用、コンマ、および改行の問題が考えられます。コードが生成する実際の 'ffmpeg'コマンドを表示すると、問題がどこにあるかが示されます。またMP4の代わりにmp3の代わりにaacを使用してください。いくつかの主流の、不気味なプレイヤーはその組み合わせを解読するのに問題があります。 – LordNeckbeard
私はcmdコードで試してみると、プログラムがうまく動作します。しかし、私はjavaが動作しないとしようとするとき。 – MaF