Je voudrais appliquer un PNG recouvrir (filigrane) sur un fichier vidéo arbitraire à l’aide de ffmpeg. J'aimerais que la vidéo conserve sa taille d'origine (que je ne connaissais pas à l'avance), et que le fichier PNG soit conservé. escaladé par rapport à la vidéo.
Par exemple, la commande suivante place la superposition en haut à gauche:
ffmpeg.exe -i input.mov -i header.png -filter_complex \
"[0][1] overlay=0:0" output.mkv
Et la commande suivante redimensionne la superposition par rapport à elle-même (1/5 de la largeur, hauteur relative):
ffmpeg.exe -i input.mov -i header.png -filter_complex \
"[1] scale=iw/5:-1 [scaled]; \
[0][scaled] overlay=0:0" output.mkv
Comment pourrais-je faire la superposition 1/5 de la largeur de input.mov
? (Par exemple, est-il possible de stocker et / ou d'interroger la largeur d'une autre clause de filtre?)
La question la plus proche que j'ai rencontrée est Échelle de superposition de filigrane par taille vidéo avec ffmpeg mais cette réponse utilise des commandes externes Linux / Cygwin. Filigrane FFmpeg était également utile pendant que je réalisais ffmpeg. Cependant, je suis sous Windows et j'appelle ffmpeg via Python. J'aimerais donc tout faire dans la clause filter_complex. Si ce n'est pas possible, j'aimerais bien savoir si je peux arrêter d'essayer :)