использовать ffplay для воспроизведения списка аудиофайлов

Есть много аудио– и видеоплееров, но я хотел бы использовать один инструмент для многих. Поэтому я хотел бы использовать ffplay как аудио и видеоплеер.

Для воспроизведения одного файла команда такова.

ffplay path_to_audio_file.mp3 

но как воспроизвести список аудиофайлов или список видео?

Я попытался использовать:

 ffplay *.mp3 

но без успеха, он дает мне такую ​​ошибку:

Argument 'audiofileB.mp3' provided as input filename, but 'audiofileA.mp3' was already specified.

ffplay похоже, поддерживает только один входной файл, поэтому вам нужно будет использовать код для перебора списка входных файлов (и, возможно, для их перетасовки); дико предполагая coreutils (для shuf ), возможно, что-то вроде:

 find musicdir -type f -name "*.mp3" | shuf | while read f; do ffplay -autoexit -- "$f"; done 

Разумеется, это будет ужасно, если в именах файлов есть пробелы или символы новой строки.

(Мой текущий музыкальный плеер довольно схож, find ~/music -type f -name "*.mp3" | mpg123 --shuffle -Z --list - )

Я нашел эту ветку, пока я писал графический интерфейс FFplay в Lazarus / FPC. Он уже мог проигрывать список удаленных файлов и пропускать следующий / предыдущий файл, но мне приходилось убивать процесс ffmpeg и каждый раз создавать новый. Я пытался добавить возможность воспроизведения всего списка файлов. Простейшим обходным решением, которое я нашел на данный момент, было, конечно, использование -autoexit и создание файла списка воспроизведения с помощью этого кода 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; 

Затем читайте это так:

 'ffplay -f concat -safe 0 -i flist.txt -autoexit' 

который является тем же самым синтаксисом, который я использую для конкатенации файлов с помощью FFMPeg.

Я теперь ищу подходящий способ добавить задержку, если файлы являются файлами изображений …