use el comando buscar para conversión recursiva usando ffmpeg

use el comando buscar para conversión recursiva usando ffmpeg

¿Cómo puedo utilizar el siguiente script pararecursivamenteconvertir un directorio que contiene .mp4a .png(solo 1 fotograma).

En este momento solo convierte el directorio. No es 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

Respuesta1

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:

  • En su código original name=`echo "$i" | cut -d'.' -f1`hay un fragmento de baja calidad. Se corta en el primer punto, esto parece incorrecto. No es el único problema, pero no daré más detalles. Si desea eliminar una extensión, la forma correcta es name="${i%.*}".
  • *.mp4es citado debido aeste.
  • Menteeste.
  • find-shse explicaaquí.
  • finddesciende a subdirectorios pero no sigue enlaces simbólicos de forma predeterminada. Si todos los "subdirectorios" .son enlaces a directorios, entonces puede pensar erróneamente que la herramienta no desciende en general. Marque man 1 find, -Lopción.

información relacionada