Hay muchos reproductores de audio y video, pero me gustaría usar una herramienta para muchas propuestas. Así que me gustaría usar ffplay
como reproductor de audio y video.
Para reproducir un archivo, el comando es así.
ffplay path_to_audio_file.mp3
pero cómo reproducir una lista de archivos de audio o una lista de videos?
Intenté usar:
ffplay *.mp3
pero sin éxito, me da un error como este:
Argument "audiofileB.mp3" provided as input filename, but "audiofileA.mp3" was already specified.
Respuesta
ffplay
parece que solo admite un único archivo de entrada, por lo que «necesitará utilizar código para recorrer una lista de archivos de entrada (y posiblemente mezclarlos ); asumiendo salvajemente coreutils
(para shuf
), tal vez algo como:
find musicdir -type f -name "*.mp3" | shuf | while read f; do ffplay -autoexit -- "$f"; done
Esto, por supuesto, se romperá horriblemente si hay espacios o líneas nuevas en los nombres de archivo.
(Mi reproductor de música actual es bastante similar, find ~/music -type f -name "*.mp3" | mpg123 --shuffle -Z --list -
)
Comentarios
Responder
Encontré este hilo mientras escribía una GUI de FFplay en Lazarus / FPC. Ya podía reproducir una lista de archivos caídos y saltar al archivo siguiente / anterior, pero tuve que eliminar el proceso ffmpeg y crear uno nuevo cada vez. Estaba intentando agregar la capacidad de reproducir una lista completa de archivos. La solución alternativa más simple que encontré hasta el momento fue, por supuesto, usar -autoexit y crear un archivo de lista de reproducción con este código Pascal:
begin AssignFile(tfOut, C_FNAME); try rewrite(tfOut); for i:= 0 to Fichiers.Items.Count - 1 do if Fichiers.Selected[i] then begin writeln(tfOut, "file " + #39 + conv(Fichiers.Items[i]) + #39) end; CloseFile(tfOut); except on E: EInOutError do ShowMessage ("File error") end; end;
Luego, léelo de esta manera:
"ffplay -f concat -safe 0 -i flist.txt -autoexit"
que es la misma sintaxis que uso para concatenar archivos con FFMPeg.
Ahora estoy buscando una forma adecuada de agregar un retraso si los archivos son archivos de imagen …
-autoexit
parece relevante para ese problema.-autoexit
resolvió ese problema. Ahora tengo otro que se puede resolver usando-nodisp
… esto deshabilitará la visualización de la forma de onda y cosas similares. Esto evitará crear una nueva ventana y robar el foco de la aplicación de trabajo actual (este fue un comportamiento muy molesto). le gustaría incluir esta opción en su respuesta, como una posible opción para resolver el comportamiento molesto.