PDA

Visualizza la versione completa : Shell: codificare file vecchi di 6 ore con determinata estensione


motofiera
07-05-2012, 23:30
Ciao a tutti,

spero che qualcuno possa essermi di aiuto...

Allora....


Ho bisogno di fare un piccolo script che deve entrare in una determinata directory e rilevi file video vecchi di 6 ore con estensione .ASF e le ricodifichi con ffmpeg in formato .avi. (preservando lo stesso nome)


Il comando con ffmpeg è normalmente questo:

ffmpeg -i /percorso/Sala/nomefile.asf -acodec copy -vcodec copy /percorso/nomefile.avi

Ma come faccio ad indicare di rilevare TUTTI i file con estensione .ASF più vecchi di 6 ore e ricodificarli automaticamente in .AVI ? Magari preservando lo stesso nome cancellando il "vecchio file .ASF" già codificato.

Grazie a tutti per la collaborazione.

rufo80
08-05-2012, 10:05
per trovare i file + vecchi di 6 ore e codificarli dovresti usare questo comando :

find /percorso/cartella/ -name *.asf -mtime -360 | xargs ffmpeg -acodec copy -vcodec copy /percorso/nomefile.avi

il comando l'ho scritto a memoria quindi potrebbe presentare degli errori di sintassi... ma è una base da cui partire

ciao

motofiera
08-05-2012, 14:09
Ciao,

grazie per la risposta!

Ho risolto grazie a consiglio simile al tuo.

Metto il codice casomai servisse a qualcuno:


#!/bin/bash

MINUTI=360

INDIR="/nomedirectory/"
OUTDIR="/nomedirectory2/"

find "$INDIR" -iname "*.asf" -mmin -$MINUTI | while read file ; do
FILENAME=$(basename "$file" | sed -e 's/\.\(.\{4\}\|.\{3\}\|.\{2\}\|.\{1\}\)$//')
ffmpeg -i "$file" -acodec copy -vcodec copy "$OUTDIR/$FILENAME.avi"
rm "$file"
done

Loading