2017-07-19 21 views
0

画像とオーディオファイルを組み合わせてビデオ出力を作成します。 私はコマンドラインから実行できます: ffmpeg -loop 1 -i /tmp/image.jpeg -i /tmp/audiot.mp3 -vf 'scale = 320:trunc(ow/a/2)* 2 '-acodec libvo_aacenc -b:a 192k -shortest /tmp/output.mp4ffmpeg-cli-wrapper:画像とオーディオ(mp3)の入力をビデオ出力(mp4)にマージできません

しかし、私がffmpeg-cli-wrapper javaを使用して同じ動作を実装しようとしているとき、progamは無期限に実行し続けます。 Raised issue on GitHub too.

このオンラインの例は見つかりませんでした。誰かが同じまたは他のフレームワークを使用してこの動作を実装する方法を知っている場合は、私に知らせてください。 ここに私のサンプルテスト用のJavaプログラムがあります。

 FFmpeg ffmpeg = new FFmpeg("/usr/bin/ffmpeg/ffmpeg"); 
     FFprobe ffprobe = new FFprobe("/usr/bin/ffprobe"); 


     FFmpegBuilder builder = new FFmpegBuilder() 

       .setInput("/tmp/image.jpeg")// Filename, or a FFmpegProbeResult 
       .addInput("/tmp/audio.mp3") 
       .addExtraArgs("-loop","1") 

        .overrideOutputFiles(true) // Override the output if it exists 

        .addOutput("/tmp/output.mp4") // Filename for the destination 
        .setFormat("mp4")  // Format is inferred from filename, or can be set 
        //.setTargetSize(250_000) // Aim for a 250KB file 

        //.disableSubtitle()  // No subtiles 

        //.setAudioChannels(1)   // Mono audio 
        .setAudioCodec("aac")  // using the aac codec 
        .setAudioSampleRate(48_000) // at 48KHz 
        .setAudioBitRate(32768)  // at 32 kbit/s 

        .setVideoCodec("libx264")  // Video using x264 
        .setVideoFrameRate(24, 1)  // at 24 frames per second 
        .setVideoResolution(640, 480) // at 640x480 resolution 
        //.setComplexVideoFilter("scale=320:trunc(ow/a/2)*2") 

        .setStrict(FFmpegBuilder.Strict.EXPERIMENTAL) // Allow FFmpeg to use experimental specs 
        .done(); 

       FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe); 

       // Run a one-pass encode 
       executor.createJob(builder).run(); 

答えて

0

例のコマンドとコード内のコマンドが異なるようです。

-loop 1入力オプションを使用して画像入力が連続してループしています(または、少なくとも適用されているものの、通知するのは難しいですが)コードに-shortest出力オプションがなくなり、コマンドが無期限に実行されます。

関連する問題