2017-10-20 30 views
0

Linux + ffmpegcomment puis-je appliquer filigrane sur plusieurs vidéos dans le répertoire courant avec ffmpeg

J'ai un dossier avec 300 vidéos. J'ai besoin d'appliquer le même filigrane sur toutes ces vidéos, donc dans le dossier j'ai 300 fichiers vidéo + 1 fichier png qui est mon filigrane, comment puis-je le faire sans que le système demande d'écraser les fichiers? comment générer un nom différent pour chaque fichier de sortie? c'est au moins video1.mp4 video2.mp4 etc ...

ffmpeg -i video.mp4 -i watermark.png -filter_complex 'overlay=10:10' output.mp4 

J'ai trouvé quelque chose comme ça.

Il fonctionne sans erreur, mais demande si je veux remplacer la vidéo précédente avec la vidéo suivante à marquer:

#!/bin/bash 
for f in *.mp4; do ffmpeg -i "$f" -i watermark.png -filter_complex 'overlay=10:10' -strict -2 "$~nf-360p.mp4"; done 

Comment générer une commande qui a le drapeau dans chaque fichier mp4 traité pour appliquer le filigrane du répertoire en cours, obtient un nom différent afin que les fichiers de sortie n'ont pas été remplacés?

Merci.

+2

Vous mixez la syntaxe de script Windows et Bash ici, ne savez pas où vous avez obtenu cette commande en boucle étrange de. 'pour f dans * .mp4; fais ffmpeg -i "$ f" ...; fait – slhck

Répondre

0

Merci à slhck's comment, je trouve la solution:

for f in *.mp4; do ffmpeg -i "$f" -i watermark.png -filter_complex 'overlay=10:10' -strict -2 "$f-marked.mp4"; done