
Como posso usar o seguinte script pararecursivamenteconverta um diretório contendo .mp4
to .png
(apenas 1 quadro).
No momento, ele apenas converte o diretório. Não é recursivo.
for i in *.mp4
do name=`echo "$i" | cut -d'.' -f1`
echo "$name"
ffmpeg -i "$i" -r 0.0033 -vf scale=-1:1024 -vcodec png "${name}.png"
done
Responder1
find . -type f -name '*.mp4' -exec sh -c '
name="${1%.*}"
echo "$name"
ffmpeg -i "$1" -r 0.0033 -vf scale=-1:1024 -vcodec png "${name}.png"
' find-sh {} \;
Notas:
- No seu código original
name=`echo "$i" | cut -d'.' -f1`
há um fragmento de qualidade bastante baixa. Corta no primeiro ponto, isso parece errado. Não é o único problema, mas não vou entrar em detalhes. Se você deseja remover uma extensão, o caminho certo éname="${i%.*}"
. *.mp4
é citado por causaesse.- Menteesse.
find-sh
é explicadoaqui.find
desce para subdiretórios, mas não segue links simbólicos por padrão. Se todos os "subdiretórios" forem.
links de fato para diretórios, você pode pensar erroneamente que a ferramenta não desce em geral. Verifiqueman 1 find
,-L
opção.