[FFmpeg-user] Invalid stream specifier

Moritz Barsnick barsnick at gmx.net
Fri Dec 12 12:49:59 CET 2014


Hi Radu,

On Fri, Dec 12, 2014 at 10:22:58 +0000, Radu Grigorovici wrote:

> the frames at 100 fps and blend them in successive steps to 50 fps
> and then to 25 fps. The problem is i get an error saying "Invalid
> stream specifier: fps50" and don't know how to fix it.
[...]
> ffmpeg -r 100 -i frame_%05d.png -filter_complex [0:v]tinterlace=mode=1[even1];[0:v]tinterlace=mode=2[odd1];[even1][odd1]blend=all_mode='average'[blend1];[blend1]fps=fps=50[fps50];[fps50]tinterlace=mode=1[even2];[fps50]tinterlace=mode=2[odd2];[even2][odd2]blend=all_mode='average'[blend2];[blend2]fps=fps=25 -r 25 out_fx.mp4

I haven't checked the docs, but I believe the issue is that you can't
use one filter chain's output twice as input. Exceptions are
(apparently) streams from the initial demuxer, such as "[0:v]".

You need to use the split filter: [fps50]split=2[fps50a][fps50b]
(Defaults to two, actually.)

By the way, you are doing:
[in]filter1[out1];[out1]filter2[out2]
were you could do
[in]filter1,filter2[out2]

You don't need to create an output after every filter which has exactly
one, and specify it at the next filter which has only one input. I'm
saying, blend1 and blend2 could be dropped.

That results in my untested guess:

[0:v]tinterlace=mode=1[even1]; \
[0:v]tinterlace=mode=2[odd1]; \
[even1][odd1]blend=all_mode=average,fps=fps=50,split[fps50a][fps50b]; \
[fps50a]tinterlace=mode=1[even2]; \
[fps50b]tinterlace=mode=2[odd2]; \
[even2][odd2]blend=all_mode=average,fps=fps=25

(Not knowing whether what you are trying makes sense at all. ;-))

Cheers,
Moritz


More information about the ffmpeg-user mailing list