A three-segment business reel has a clear shape: you open with a talking head, move into a split-screen teaching moment where your face sits left and your screen sits right, then close with another talking head. FFmpeg handles every cut, every composite, and every caption burn in a single pipeline. No subscription software. No render queue. Just a command that produces a finished file.

Trimming and Splitting Your Raw Footage

The first job is extracting the exact segments you need from your raw recordings. FFmpeg's -ss flag sets a start time and -to sets an end time. When you pair them before the input file, FFmpeg seeks to that position before it starts reading, which makes the trim fast. What matters conceptually here is that you are not re-encoding the whole file. You are telling FFmpeg exactly which slice to care about, and everything outside that slice is ignored. Run this once for your opening talking head, once for your screen recording window, and once for your closing talking head. You end up with three clean source clips ready for compositing.

Building the Split-Screen Middle

The split-screen segment is where filter_complex comes in. This filter accepts multiple input streams and lets you position them on a canvas. You scale your face clip to fill the left half of the frame. You scale your screen recording to fill the right half. Then the overlay filter places the screen clip on top of the base canvas at an x-offset equal to half your output width. The result is one video stream where both feeds are visible at the same time. The key idea is that filter_complex is a graph: inputs flow in, filters transform them, and a single output stream flows out the other side.

FFmpeg does not think in clips. It thinks in streams and graphs. Once you understand that every filter is just a node passing data to the next node, the syntax stops being intimidating.

Joining All Three Segments and Finishing the Video

Once you have your three processed segments, you join them using the concat demuxer. You write a plain text file that lists each segment in order, then pass that file to FFmpeg with -f concat. FFmpeg reads the list and treats all three files as one continuous input. This approach is cleaner than the concat filter for finished segments because it does not require re-encoding the video a second time. The segments play back to back exactly as listed.

After concatenation, two finishing steps complete the reel. A logo watermark is another overlay operation: you load your transparent PNG as a second input, then use overlay with a fixed x and y position to place it in a corner of the video. For captions, FFmpeg's subtitles filter reads a standard SRT file and burns the text directly into the video pixels. Burned captions cannot be turned off by the viewer, which matters for social video where most people watch without sound. At Balay ni Bruno & Co., this full pipeline runs as a single script, so every reel that comes out of the edit bay has the same structure, the same watermark placement, and the same caption style every time.

Key Takeaways

  • FFmpeg -ss and -to trim segments without re-encoding when you use -c copy.
  • The overlay filter handles split-screen, logo watermarks, and captions all in one tool.
  • concat demuxer joins videos without quality loss.
  • SRT captions burned in are visible on any platform without extra setup.