Skip to content
Andrew Brampton edited this page Nov 12, 2016 · 22 revisions

I occasionally get asked how to convert a normal FFmpeg command line, into an equivalent FFmpegBuilder. This page maintain a list of examples.

Feel free to add your own examples, or reach out to me.

Example 1: Recording from local webcam, and send to youtube, using a local build of ffmpeg

ffmpeg\win64\bin\ffmpeg.exe \
  -f dshow -rtbufsize 1500M -re \
  -i video=\"Microsoft Camera Rear\":audio=\"Microphone Array (Realtek High Definition Audio(SST))\" \
  -f flv \
  -vcodec libx264 -pix_fmt yuv420p -s 426x240 -r 30/1 -b:v 2000000 \
  -acodec libmp3lame -ar 44100 -b:a 1000000 -bufsize 4000k -maxrate 1000k \
  -profile:v baseline -deinterlace -preset medium -g 30 \
  "rtmp://a.rtmp.youtube.com/live2/1234-5678"
FFmpeg ffmpeg = new FFmpeg("ffmpeg\\win64\\bin\\ffmpeg.exe");

FFmpegBuilder builder =  new FFmpegBuilder()
  .addExtraArgs("-rtbufsize", "1500M")
  .addExtraArgs("-re")
  .setFormat("dshow")
  .setInput("video=\"Microsoft Camera Rear\":audio=\"Microphone Array (Realtek High Definition Audio(SST))\"")
  .addOutput("rtmp://a.rtmp.youtube.com/live2/1234-5678")
    .setFormat("flv")
    .addExtraArgs("-bufsize", "4000k")
    .addExtraArgs("-maxrate", "1000k")

    .setAudioCodec("libmp3lame")
    .setAudioSampleRate(FFmpeg.AUDIO_SAMPLE_44100)
    .setAudioBitRate(1_000_000)

    .addExtraArgs("-profile:v", "baseline")
    .setVideoCodec("libx264")
    .setVideoPixelFormat("yuv420p")
    .setVideoResolution(426, 240)
    .setVideoBitRate(2_000_000)
    .setVideoFrameRate(30)
    .addExtraArgs("-deinterlace")
    .addExtraArgs("-preset", "medium")
    .addExtraArgs("-g", "30")
    .done();

FFmpegExecutor executor = new FFmpegExecutor(ffmpeg);
executor.createJob(builder).run();

Example 2: Setting ogv quality

FFmpegBuilder builder = new FFmpegBuilder()
    .setInput("input.mkv")
    .addOutput("output.ogv")
      .setVideoCodec("libtheora")
      .addExtraArgs("-qscale:v", "7")
      .setAudioCodec("libvorbis")
      .addExtraArgs("-qscale:a", "5")
    .done();
Clone this wiki locally