Sí, aunque he visto mucha burrada gorda hecha con la ayuda de chatgpt. Chatgpt es un LLM, un modelo de lenguaje.
Читать полностью…No te digo que no, pero aprende esas herramientas porque son MUCHO más cómodas para realizar acciones sobre muchos archivos
Читать полностью…¿ Porqué no usas find/xargs ?. Iterar sobre nombres de archivo con variables es delicado, tienes que usar un separador que no esté permitido como nombre de archivo o de ruta (primer caracter de la variable IFS). find/xargs pueden usar el caracter 0 como separador, además puedes hacer que lancen varios trabajos en paralelo
Читать полностью…[NULL @ 0x55af4f34fa80] Unable to find a suitable output format for '"${outputfolder}"/"${base}"_"${height}"p_"${preset}".mp4)'
"${outputfolder}"/"${base}"_"${height}"p_"${preset}".mp4): Invalid argument
nop, eso no es. Yo creo que es en esta linea ( output="${outputfolder}/${base}_${height}p_${preset}.mp4")
Читать полностью…si lo pasas por chatgpt y le dices el error te lo arregla tambien..pero es para que lo entiendas porque te pasa
Читать полностью…De todos modos, es posible hacerlo. Bash hace lo correcto en el for si el resultado no viene de una variable, sino de su propia expansión de una expresión glob
Читать полностью…ah prueba a poner " en cada variable asi : output='"${outputfolder}"/"${base}"_"${height}"p_"${preset}".mp4)'
Читать полностью…pero el archivo lo deja en la raiz en vez de meterlo en el folder y usa el nombre incorrecto
Читать полностью…#!/bin/bash
height=1080
bitrate="3M"
maxrate="6M"
bufsize="6M"
gop=48
preset="ultrafast"
# folders and filenames
inputfolder="./sources"
files=$(ls "$inputfolder"/*.mp4)
for input in "${files[@]}"
do
base=$(basename"${input%.*}")
outputfolder="./outputs/$base"
mkdir -p "$outputfolder"
output="${outputfolder}/${base}_${height}p_${preset}.mp4"
ffmpeg -i "${input}" -c:v libx265 -crf 26 -preset ultrafast -c:a aac -b:a 128k ${output}
done