user21894: In ffmpeg, I have the following filter_complex:
color=c=Chartreuse:s=1920x1080:d=8640.059,setpts=PTS-STARTPTS[t];
[1:v] trim=start=114.149:end=124.149,setpts=PTS-STARTPTS [v0];
[t][v0]overlay=0:0:enable='between(t,0,10)' [o0];
[2:v] trim=start=118.112:end=135.112,setpts=PTS-STARTPTS [v1];
[o0][v1]overlay=0:0:enable='between(t,10,27)' [o1];
[o0][o1]concat=n=2:v=1:a=0 [vout]

But when I run the command with 3 inputs (the first one is an audio file), I get:

Stream specifier 'o0' in filtergraph description
  color=c=Chartreuse:s=1920x1080:d=8640.059,setpts=PTS-STARTPTS[t];
  [1:v] trim=start=114.149:end=124.149,setpts=PTS-STARTPTS [v0];
  [t][v0]overlay=0:0:enable='between(t,0,10)' [o0]; [2:v]
  trim=start=118.112:end=135.112,setpts=PTS-STARTPTS [v1];
  [o0][v1]overlay=0:0:enable='between(t,10,27)' [o1];
  [o0][o1]concat=n=2:v=1:a=0 [vout]  matches no streams.

What am I doing wrong?
Using a git version from ~1 week ago.

user21894: It looks like an intermediary stream, as produced by the color filter, cannot be reused more than once, so we have to use the split filter on it:
color=c=Chartreuse:s=1920x1080:d=8640.059,setpts=PTS-STARTPTS[t];
[t] split=2 [s0][s1];
[1:v] trim=start=114.149:end=125.149,setpts=PTS-STARTPTS [v0];
[s0][v0]overlay=0:0:enable='between(t,0,11)' [o0];
[2:v] trim=start=115.629:end=123.629,setpts=PTS-STARTPTS [v1];
[s1][v1]overlay=0:0:enable='between(t,11,19)' [o1];
[o0][o1]concat=n=2:v=1:a=0 [vout]

I couldn't find any explicit documentation on that limitation, altough I'm sure it exists somewhere.

user21076: For future reference:
as specified, you cannot reuse an intermediate stream more than once so you have 2 options:

either save it, input the saved file and reuse it as many times you need in your filter;


ffmpeg -i file1 -i file2 -i savedStream -filter_complex "..."


use the split filter and create as many outputs you need; default value for split is 2 outputs so:


[o0]split[split1][split2]

would be your case.

21894: <p>In ffmpeg, I have the following filter_complex:</p>

<pre><code>color=c=Chartreuse:s=1920x1080:d=8640.059,setpts=PTS-STARTPTS[t];
[1:v] trim=start=114.149:end=124.149,setpts=PTS-STARTPTS [v0];
[t][v0]overlay=0:0:enable='between(t,0,10)' [o0];
[2:v] trim=start=118.112:end=135.112,setpts=PTS-STARTPTS [v1];
[o0][v1]overlay=0:0:enable='between(t,10,27)' [o1];
[o0][o1]concat=n=2:v=1:a=0 [vout]
</code></pre>

<p>But when I run the command with 3 inputs (the first one is an audio file), I get:</p>

<blockquote>
  <p>Stream specifier 'o0' in filtergraph description
  color=c=Chartreuse:s=1920x1080:d=8640.059,setpts=PTS-STARTPTS[t];
  [1:v] trim=start=114.149:end=124.149,setpts=PTS-STARTPTS [v0];
  [t][v0]overlay=0:0:enable='between(t,0,10)' [o0]; [2:v]
  trim=start=118.112:end=135.112,setpts=PTS-STARTPTS [v1];
  [o0][v1]overlay=0:0:enable='between(t,10,27)' [o1];
  [o0][o1]concat=n=2:v=1:a=0 [vout]  matches no streams.</p>
</blockquote>

<p>What am I doing wrong?</p>

<p>Using a git version from ~1 week ago.</p>
 21894: <p>It looks like an intermediary stream, as produced by the color filter, cannot be reused more than once, so we have to use the split filter on it:</p>

<pre><code>color=c=Chartreuse:s=1920x1080:d=8640.059,setpts=PTS-STARTPTS[t];
[t] split=2 [s0][s1];
[1:v] trim=start=114.149:end=125.149,setpts=PTS-STARTPTS [v0];
[s0][v0]overlay=0:0:enable='between(t,0,11)' [o0];
[2:v] trim=start=115.629:end=123.629,setpts=PTS-STARTPTS [v1];
[s1][v1]overlay=0:0:enable='between(t,11,19)' [o1];
[o0][o1]concat=n=2:v=1:a=0 [vout]
</code></pre>

<p>I couldn't find any explicit documentation on that limitation, altough I'm sure it exists somewhere.</p>
 21076: <p>For future reference:</p>

<p>as specified, you cannot reuse an intermediate stream more than once so you have 2 options:</p>

<ol>
<li>either save it, input the saved file and reuse it as many times you need in your filter;</li>
</ol>

<blockquote>
  <p><code>ffmpeg -i file1 -i file2 -i savedStream -filter_complex "..."</code></p>
</blockquote>

<ol start="2">
<li>use the <a href="https://ffmpeg.org/ffmpeg-filters.html#split_002c-asplit" rel="noreferrer">split</a> filter and create as many outputs you need; default value for split is 2 outputs so:</li>
</ol>

<blockquote>
  <p><code>[o0]split[split1][split2]</code></p>
</blockquote>

<p>would be your case.</p>
