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

perl может сделать это с синтаксисом, аналогичным синтаксису sed , но позволяя прямую оценку индекса замены, например

perl -pe 's/>text_.*/sprintf "text_%d", ++$n/pe' file

См. Также Замените строку последовательным индексом .

Однако, поскольку в вашем случае текст уже пронумерован, проще просто обрезать ненужную часть, захватив и заменив ее - например,

sed -E 's/(>text_[0-9]{1,}).*/\1/' file

2
28.08.2019, 18:41
2 ответа

Я нашел эту тему, когда писал графический интерфейс 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.

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

.
1
27.01.2020, 21:59

ffplayможет использовать демультиплексор concat, аналогичный ffmpeg.

Создайте файл со списком файлов, которые вы хотите воспроизвести:

# list.txt
file 'audiofileA.mp3'
file 'audiofileB.mp3'

Затем запустите ffplay:

ffplay -f concat -i list.txt

Другие полезные опции:

  • Используйте -autoexit, чтобы выйти, когда это будет сделано
  • Используйте -loop 0для бесконечного цикла (нажмите q для выхода ).
  • Используйте -save 0, если пути к файлам являются абсолютными.

Подробнее см. вики ffmpeg о демультиплексоре concat .

0
14.09.2021, 10:35

Теги

Похожие вопросы