[FFmpeg-user] Missing ')' or too many args in 'between(t'

Michael Koch astroelectronic at t-online.de
Thu May 7 09:21:26 EEST 2020


Am 07.05.2020 um 02:46 schrieb Ulf Zibis:
>
> Am 06.05.20 um 20:48 schrieb James Darnley:
>> On 06/05/2020, Ulf Zibis <Ulf.Zibis at cosoco.de> wrote:
>>> -af 
>>> volume='not(between(t,46:50,48:50))',volume='not(between(t,1:30:00,1:31:00))',atempo=1/1.1/1.3,aresample=48000/1.1,asetrate=48000
>>> [Parsed_volume_0 @ 0x55b1b575cd40] [Eval @ 0x7ffed56fa4a0] Missing 
>>> ')' or
>>> too many args in 'between(t'
>>> [Parsed_volume_0 @ 0x55b1b575cd40] Error when evaluating the volume
>>> expression 'not(between(t'
>>> [AVFilterGraph @ 0x55b1b575c5c0] Error initializing filter 'volume' 
>>> with
>>> args 'not(between(t'
>>
>> You need to escape those commas.  Commas separate different filters.
>> Probably the colons too which separate different arguments for a
>> single filter.
>
> Thanks for the hint. I already tested escaping the commas with '\' but 
> with hours:minutes:seconds. This didn't work.
>
> Now I tried with pure seconds, an this worked. Here is my command:
> $ ffmpeg -ss 03:00 -t 01:30:50 -i in.mp3 -f lavfi -i 
> life=s=320x240:mold=10:r=30:ratio=0.1:death_color=#C83232:life_color=#00ff00 
> -af 
> volume='not(between(t\,2791\,2911))':eval=frame,volume='not(between(t\,5397\,5457))':eval=frame,atempo=1/1.1/1.3,aresample=48000/1.1,asetrate=48000 
> -vf format=yuv420p -crf 39 -shortest out_1.3x.mp4
>
> I tried several versions to escape the collons, but found no solution.
> I think, that there must be a solution similar to the examples here: 
> https://ffmpeg.org/ffmpeg-filters.html#Examples-5
>
> Does one have a clue, how it could work?

I have never seen an example of hh:mm:ss inside an expression, and I 
don't think that works. The expression evaluator works only with integer 
or floating point numbers, but not with times.

Michael



More information about the ffmpeg-user mailing list