-
-
Notifications
You must be signed in to change notification settings - Fork 423
Random Examples
Andrew Brampton edited this page Nov 21, 2017
·
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.
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();
FFmpegBuilder builder = new FFmpegBuilder()
.setInput("input.mkv")
.addOutput("output.ogv")
.setVideoCodec("libtheora")
.addExtraArgs("-qscale:v", "7")
.setAudioCodec("libvorbis")
.addExtraArgs("-qscale:a", "5")
.done();
FFmpegBuilder builder = new FFmpegBuilder()
.setInput("sample.avi")
.addOutput("thumbnail.png")
.setFrames(1)
.setVideoFilter("select='gte(n\\,10)',scale=200:-1")
.done();
and save the video to a set of imgXXX.jpg files
FFmpegBuilder builder =
new FFmpegBuilder()
.setInput("rtsp://192.168.1.1:1234/")
.addOutput("img%03d.jpg")
.setFormat("image2")
.done();
RunProcessFunction func = new RunProcessFunction();
func.setWorkingDirectory("/path/to/working/dir");
FFmpeg ffmpeg = new FFmpeg("/path/to/ffmpeg", func);
FFprobe ffprobe = new FFprobe("/path/to/ffprobe", func);
FFmpegBuilder builder = new FFmpegBuilder()
.setInput("input")
.addOutput("output.mp4")
.done();
FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);
// Run a two-pass encode
executor.createTwoPassJob(builder).run();
FFmpegBuilder builder = new FFmpegBuilder()
.addInput("image%03d.png")
.addOutput("output.mp4")
.setVideoFrameRate(FFmpeg.FPS_24)
.done();
TODO
FFmpegBuilder builder = new FFmpegBuilder()
.addInput("original.mp4")
.setVideoFilter("select='gte(n\\,10)',scale=200:-1")
.addOutput("hevc-video.mp4")
.addExtraArgs("-tag:v", "hvc1")
.setVideoCodec("libx265")
.done();
FFmpegBuilder builder = new FFmpegBuilder()
.setVerbosity(FFmpegBuilder.Verbosity.DEBUG)
.setInput("input.mp3")
.addOutput("left.mp3")
.addExtraArgs("-map_channel", "0.0.0")
.done()
.addOutput("right.mp3")
.addExtraArgs("-map_channel", "0.0.1")
.done();