0 votos

Combinar audio y vídeo en una carpeta supervisada

Quiero crear un script en mac que monitorice una carpeta y fusione el vídeo y el audio. Pero si existe el archivo01 (archivo de fusión anterior) quiero que cree el archivo02 y si este existe quiero que cree el archivo03,. Estaría muy contento si los archivos más antiguos se pudieran eliminar por espacio en disco. Pero esto es complicado porque controlo la carpeta a través de la configuración de la acción de la carpeta en mac. Esto es lo que obtengo hasta ahora:

#!/bin/bash
now=$(date +"%d_%m_%Y_%Hu%M")
cd "/Users/tomvanwinkel/Documents/Convert/Merge"
for filename in *.mp4; do
    stub="${filename%.*}"
    /usr/local/bin/ffmpeg -i "${stub}.mp4" -i "${stub}.wav" -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 "${stub}_ok".mp4

    FILE="${stub}_ok".mp4
    if [ -f "$FILE" ]; then
        cp "${stub}_ok".mp4 "${stub}_ok01".mp4
    fi
done

1 votos

Entonces, ¿dónde está atascado exactamente?

0 votos

Si quiero que lo use con la configuración de la acción de la carpeta en mac el archivo ${stub}_ok".mp4 debe seguir existiendo porque si no hace un bucle porque es una carpeta de vigilancia. Ahora quiero que si "${stub}_ok01" existe quiero crear "${stub}_ok02" El archivo de vídeo será siempre el mismo nombre para un proyecto. El archivo de audio se actualizará regularmente. Así que si el archivo de audio se ha actualizado el nuevo archivo será ${stub}_ok02,${stub}_ok03,${stub}_ok04 y así sucesivamente. Sería bueno si ${stub}_ok02 se crea entonces el script no puede comprobar más si los archivos anteriores se eliminan. Así que después de que el proyecto está hecho. Voy a borrar manualmente los archivos

0 votos

¿Ayudaría crear el archivo fusionado fuera de la carpeta vigilada?

1voto

Crear archivos de destino en la carpeta vigilada es buscarse problemas, así que yo los crearía "fuera" en su lugar:

#!/bin/bash
now=$(date +"%d_%m_%Y_%Hu%M")
cd "/Users/tomvanwinkel/Documents/Convert/Merge"
mkdir -p ../Target
for filename in *.mp4; do
    stub="${filename%.*}"
    target="../Target/${stub}_ok_$(date +%Y-m%-%d_%H)"

    /usr/local/bin/ffmpeg -i "${stub}.mp4" -i "${stub}.wav" -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 "${target}.mp4"

    rm -f "${stub}.mp4" "${stub}.wav"
done

0 votos

¡Eres bueno! El tercero es el único que no hace el bucle. Perdona que te pida ayuda de nuevo. Si la fecha fuera fecha y hora, sería mucho mejor. ¿Es posible borrar los archivos originales en "/Users/tomvanwinkel/Documents/Convert/Merge" después de la ejecución de los scripts? ¡Sólo los que se fusionan con el scriptsscriptscripts! Habrá más archivos de otros proyectos. También los archivos más antiguos en la carpeta de destino. ¡Si se arregla eso voy a bailar! ¡Solo en mi salón porque todos los pubs están cerrados!

0 votos

@TomVanwinkel Claro, siempre que lo ejecutes sólo una vez por hora debería funcionar. Si no es así tienes que modificar la cadena de formato de fecha en la asignación a target , ver man strftime para los posibles valores.

0 votos

¡Casi bailando! No sé si puedo calificarte, darte puntos o pagarte. Hazme saber. ¡Voy a bailar! ¡Me has alegrado el día! Mañana voy a tratar de eliminar los archivos en la carpeta de destino más viejo que un día.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X