web-dev-qa-db-fra.com

Comment puis-je diriger la sortie de la commande find vers ffmpeg en tant qu'entrée

J'ai une archive vidéo et j'ai besoin de trouver le fichier dans l'archive, puis la sortie du fichier doit être utilisée comme entrée pour ffmpeg.

find /mnt/video-archieve -name 'file'.mov | ffmpeg -i - ...

Je sais que - est principalement utilisé pour canaliser l'entrée vers ffmpeg, mais il me manque d'autres paramètres pour que cela fonctionne.

J'ai essayé plusieurs options mais je ne pouvais pas le faire fonctionner.

2
kunal

Réponse courte:

find /mnt/video-archieve -name "file.mov" -exec ffmpeg -i {} \;

ou

find /mnt/video-archieve -name "file.mov" -print0 | xargs -0 -I{} ffmpeg -i {}

ou

find /mnt/video-archieve -name "file.mov" -print0 | \
    while read -d $'\0' file; do \
        ffmpeg -i "$file"; \
    done

ou

find /mnt/video-archieve -name "file.mov" -print0 | \
    while IFS= read -d '' file; do \
        ffmpeg -i "$file"; \
done
3
A.B.

Une autre réponse courte:

for f in "/mnt/video-archieve/file.mov" ; do ffmpeg -i "$f" ... ; done
0
Maythux