user20608: I have a video that is composed of 3 parts: intro, outro and middle. in the outro and intro I need to add some text as an overlay and on the middle part, I need to change the background (which is one color) to an image I'll provide plus add a text overlay.
All the texts will appear at certain times, be displayed for few seconds in different parts of the video and disappear. The background image too needs to be displayed only for few seconds in the middle of the video.
Can you point me to something that can help me or give me few pointers that can help me accomplish this task? Thank you.

user22056: The comments all suggest using an NLE (I agree), but given that your question is tagged with ffmpeg, here are a few pointers to documentation:
You can accomplish text overlay with the drawtext filter.

Draw a text string or text from a specified file on top of a video, using the libfreetype library.

For changing the background, you should look into the colorkey filter. From the docs, here's an example to "make every green pixel in the input image transparent":
ffmpeg -i input.png -vf colorkey=green out.png

As for timing, you should cross-reference if they support timeline editing.

Some filters support a generic enable option. For the filters supporting timeline editing, this option can be set to an expression which is evaluated before sending a frame to the filter. If the evaluation is non-zero, the filter will be enabled, otherwise the frame will be sent unchanged to the next filter in the filtergraph.

Again, this is probably better suited for an NLE, but it's certainly possible with ffmpeg, and will likely render significantly faster (at the tradeoff of likely taking much longer to craft the ffmpeg invocation vs. using an NLE). Good luck!

20608: <p>I have a video that is composed of 3 parts: intro, outro and middle. in the outro and intro I need to add some text as an overlay and on the middle part, I need to change the background (which is one color) to an image I'll provide plus add a text overlay.
All the texts will appear at certain times, be displayed for few seconds in different parts of the video and disappear. The background image too needs to be displayed only for few seconds in the middle of the video.
Can you point me to something that can help me or give me few pointers that can help me accomplish this task? Thank you.</p>
 22056: <p>The comments all suggest using an <a href="https://en.wikipedia.org/wiki/Non-linear_editing_system" rel="nofollow noreferrer">NLE</a> (I agree), but given that your question is tagged with <a href="https://video.stackexchange.com/questions/tagged/ffmpeg">ffmpeg</a>, here are a few pointers to documentation:</p>

<p>You can accomplish text overlay with the <a href="https://ffmpeg.org/ffmpeg-filters.html#drawtext-1" rel="nofollow noreferrer">drawtext</a> filter.</p>

<blockquote>
  <p>Draw a text string or text from a specified file on top of a video, using the libfreetype library.</p>
</blockquote>

<p>For changing the background, you should look into the <a href="https://ffmpeg.org/ffmpeg-filters.html#colorkey" rel="nofollow noreferrer">colorkey</a> filter. From the docs, here's an example to "make every green pixel in the input image transparent":</p>

<pre><code>ffmpeg -i input.png -vf colorkey=green out.png
</code></pre>

<p>As for timing, you should cross-reference if they support <a href="https://ffmpeg.org/ffmpeg-filters.html#Timeline-editing" rel="nofollow noreferrer">timeline editing</a>.</p>

<blockquote>
  <p>Some filters support a generic enable option. For the filters supporting timeline editing, this option can be set to an expression which is evaluated before sending a frame to the filter. If the evaluation is non-zero, the filter will be enabled, otherwise the frame will be sent unchanged to the next filter in the filtergraph.</p>
</blockquote>

<p>Again, this is probably better suited for an NLE, but it's certainly possible with <code>ffmpeg</code>, and will likely render <em>significantly</em> faster (at the tradeoff of likely taking much longer to craft the <code>ffmpeg</code> invocation vs. using an NLE). Good luck!</p>
