Nautilus Bash Script, ¿cómo eliminar archivos antiguos después de la conversión FFMPEG?

Nautilus Bash Script, ¿cómo eliminar archivos antiguos después de la conversión FFMPEG?

Estoy escribiendo mi primer guión de Nautilus pero no estoy seguro de cómo continuar. ¿Qué necesito agregar a este script de Nautilus para que se eliminen todos los archivos MP4 de la carpeta?después¿FFMPEG termina de convertirlos a MOV?

#!/bin/bash

echo -e "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | find '*.mp4'

for i in *.mp4; do ffmpeg -i "$i" -c:v copy -c:a pcm_s16le -ar 48000 -ac 2 "$(echo "$i"|cut -d\. -f1).mov";done

¡Gracias! :)

Respuesta1

Simplemente elimine (preferiría con la opción forzar habilitada) el archivo - $i:

#!/bin/bash

echo -e "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | find '*.mp4'

for i in *.mp4 
do 
    ffmpeg -i "$i" -c:v copy -c:a pcm_s16le -ar 48000 -ac 2 "$(echo "$i"|cut -d\. -f1).mov"
    rm -f "$i"
done
  • Si lo desea, puede reemplazar las nuevas líneas con ;un signo de punto y coma.

Otra opción esmover el archivo a la papeleraen lugar de eliminarlo:

    gvfs-trash "$i"

Además, su script se puede mejorar de la siguiente manera:

#!/bin/bash -e

# Get the items selected in Nautilus as an array
IFS_BAK=$IFS
IFS=$'\t\n'
FILE_LIST=($NAUTILUS_SCRIPT_SELECTED_FILE_PATHS)
IFS=$IFS_BAK

# For each item in the array $FILE_LIST
for ((i=0; i<${#FILE_LIST[@]}; i++))
do
    # Get the file extension
    FILE_EXT="${FILE_LIST[$i]##*.}"

    # If the item is a file and its extension is mp4 
    if [[ -f ${FILE_LIST[$i]} ]] && [[ $FILE_EXT == 'mp4' ]]
    then
        # Get the filename
        FILE_NAME="${FILE_LIST[$i]%.*}"
        # Compose the name of the new file
        THE_NEW_FILE="${FILE_NAME}.mov"

        # Do the conversion
        ffmpeg -i "${FILE_LIST[$i]}" -c:v copy -c:a pcm_s16le -ar 48000 -ac 2 "$THE_NEW_FILE"

        # Remove the item: rm -f "${FILE_LIST[$i]}"; or move it to the trash:
        gvfs-trash "${FILE_LIST[$i]}"

        # Output a message, note ##*/ will remove the path from the filename
        notify-send "mp4 to mov" "${THE_NEW_FILE##*/} - was created\n${FILE_LIST[$i]##*/} - was moved to the Тrash"
    fi
done

Aquí hay una pregunta relacionada:Script para fusionar video y subs y luego eliminar los archivos existentes

información relacionada