Necesito crear un script que pueda convertir todos los archivos .mkv a .mp4 en un directorio de inicio y todos los subdirectorios que se encuentran debajo de él.
Pude convertir archivos uno a la vez usando:
avconv -i input.mkv -codec copy output.mp4
y convertir todos los archivos en el directorio actual no sería demasiado difícil. Pero después de horas de búsqueda, no encuentro una manera de hacerlo de forma recursiva.
He deducido que necesito usar el comando buscar, pero soy relativamente nuevo en Linux y me pierdo por completo al combinar buscar y avconv para lograr lo que necesito.
Respuesta1
Debe habilitar el globbing recursivo en Bash:
shopt -s globstar
Luego, un bucle simple, reemplazando el nombre del archivo de salida:
for f in **/*.mkv; do avconv -i "$f" -c copy "${f%.mkv}.mp4"; done
Tenga en cuenta que esto puede fallar en videos que contienen códecs que los contenedores MP4 no pueden manejar. MP4 es más restrictivo que MKV, que básicamente puede incluir todos los códecs.