Я пытаюсь масштабировать видео с помощью FFmpeg с помощью следующей команды:
ffmpeg -i input.jpg -vf scale="'if(gt(a,4/3),320,-1)':'if(gt(a,4/3),-1,240)'" output_320x240_boxed.png
Это дословно взято из вики FFmpeg по адресу https://trac.ffmpeg.org/wiki/Scaling%20%28resizing%29%20w%%20ffmpeg.
Когда я копирую и вставляю его в bash, я получаю следующую ошибку:
[scale @ 0x23a0980] [Eval @ 0x7fff165851e0] Missing ')' or too many args in 'if(gt(a,4/3),320,-1)'
[scale @ 0x23a0980] [Eval @ 0x7fff165851e0] Missing ')' or too many args in 'if(gt(a,4/3),-1,240)'
Error when evaluating the expression 'if(gt(a,4/3),-1,240)'
Error opening filters!
Я пробовал каждую комбинацию экранирования различных запятых, кавычек и скобок, о которых я могу думать, с разными результатами, но суть в том, что независимо от того, что я делаю, FFmpeg неправильно оценивает выражение и выдает ошибку. Кто-нибудь знает, что я делаю не так?
Полный вывод:
ffmpeg version 0.8.10-6:0.8.10-0ubuntu0.13.10.1, Copyright (c) 2000-2013 the Libav developers
built on Feb 6 2014 20:53:28 with gcc 4.8.1
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Input #0, image2, from 'input.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
Stream #0.0: Video: mjpeg, yuvj420p, 535x346 [PAR 100:100 DAR 535:346], 25 tbr, 25 tbn, 25 tbc
Incompatible pixel format 'yuvj420p' for codec 'png', auto-selecting format 'rgb24'
[buffer @ 0x100b400] w:535 h:346 pixfmt:yuvj420p
[scale @ 0x100a980] [Eval @ 0x7fff33214ee0] Missing ')' or too many args in 'if(gt(a,4/3),320,-1)'
[scale @ 0x100a980] [Eval @ 0x7fff33214ee0] Missing ')' or too many args in 'if(gt(a,4/3),-1,240)'
Error when evaluating the expression 'if(gt(a,4/3),-1,240)'
Error opening filters!