Add sub parameters syntaxe for filters

This commit is contained in:
Christophe Mehay 2020-03-06 22:54:22 +01:00
parent 4cb7d26f55
commit 58c52ed46f
2 changed files with 20 additions and 1 deletions

View File

@ -286,7 +286,13 @@ class FilterNode(Node):
out_kwargs = {}
for k, v in list(kwargs.items()):
k = escape_chars(k, '\\\'=:')
v = escape_chars(v, '\\\'=:')
if isinstance(v, dict):
v = ','.join(['{}={}'.format(
escape_chars(vk, '\\\'=:'),
escape_chars(v[vk], '\\\'=:')
) for vk in sorted(v)])
else:
v = escape_chars(v, '\\\'=:')
out_kwargs[k] = v
arg_params = [escape_chars(v, '\\\'=:') for v in out_args]

View File

@ -120,6 +120,19 @@ def test_repeated_args():
out_file = ffmpeg.input('dummy.mp4').output('dummy2.mp4', streamid=['0:0x101', '1:0x102'])
assert out_file.get_args() == ['-i', 'dummy.mp4', '-streamid', '0:0x101', '-streamid', '1:0x102', 'dummy2.mp4']
def test_filter_sub_options():
subtitle_filter = ffmpeg.input('dummy.mp4').filter('subtitles', force_style={
'Alignement': '6', 'Fontsize': '48'}).output('dummy2.mp4')
assert subtitle_filter.get_args() == [
'-i',
'dummy.mp4',
'-filter_complex',
r'[0]subtitles=force_style=Alignement=6\,Fontsize=48[s0]',
'-map',
'[s0]',
'dummy2.mp4'
]
def test__get_args__simple():
out_file = ffmpeg.input('dummy.mp4').output('dummy2.mp4')