Seu comando original pode ser modificado para
ffmpeg -y -i original.mp4 -f lavfi -i color=c=black:s=960x540=d=1 \
-filter_complex "[0:v]scale=-1:540[scaled]; \
[1:v][scaled]overlay=x=(main_w-w)/2:eof_action=endall, \
format=yuv420p, \
drawtext=fix_bounds=true:text='This is a comment':font=bold:x=(w-text_w)/2:y=h-(text_h*1)-40:borderco[email protected]:borderw=7[out]; \
[0:a]anull[audio]" \
-map "[out]" -map "[audio]" test.mp4
Alternativamente, isso dá o mesmo resultado,
ffmpeg -y -i original.mp4 \
-vf "scale=-1:540,pad=960:540:(ow-iw)/2,
drawtext=fix_bounds=true:text='This is a comment':font=bold:x=(w-text_w)/2:y=h-(text_h*1)-40:borderco[email protected]:borderw=7"
test.mp4
Notas:
1) Os filtros separados devem ser separados por ponto-e-vírgula, não por vírgula. Uma cadeia de filtros é distinta quando o seu conjunto de entradas não é idêntico ao conjunto de saídas do filtro anterior, e. escala recebe uma entrada e emite uma saída. overlay leva em duas entradas, daí que faz um novo filterchain. Da mesma forma, a saída de texto com texto não é passada para a anulação, de modo que é uma cadeia de filtros diferente. Por outro lado, se a saída de um filtro for igual à entrada de outro filtro, eles poderão ser separados por uma vírgula e os rótulos não serão necessários nessa junção.
2) Eu mantive o filtro de áudio anull no comando modded, mas não faz nada. É usado para testes por desenvolvedores.
3) o padrão de overlay é yuv420p, então o formato não é necessário.
4) O método alternativo é preferível, pois a sobreposição é sincronizada com a entrada base e descarta os quadros da sobreposição se a taxa de quadros da sobreposição for maior. Pode não ser perceptível na maioria dos casos, no entanto.