Я думаю, что Вы ищете, GNU screen
. Это поддерживает буфер для содержания последнего полного экрана или два из вывода из одной или нескольких программ и позволяет Вам разъединиться и возвратиться позже.
Ну, Вы могли сделать это с некоторыми инструментами командной строки.
cdrecord (wodim на debian) может записать аудиокомпакт-диски на лету, но ему нужны *.inf файлы, которые указывают размеры дорожки и т.д. Можно генерировать inf файл заранее с фиктивным CD, который имеет (говорят) что один большой аудиотрек (74 минуты) использующий cdda2wav (icedax на debian).
В живой установке Вас записывают от аудиоустройства по Вашему выбору с arecord
в одном xterm во временный файл x
. Используйте в качестве аргумента --duration
размер дорожки в секундах.
В другом xterm можно начать после нескольких секунд (позволять некоторую буферизацию) cdrecord, который читает аудио из конвейера от x
и использует подготовленный inf файл. Необходимо удостовериться, что Вы указываете speed=1
для записи.
Конечно, необходимо протестировать эту установку немного (первые разы с cdrecord -dummy ...
!) и поиск правильные опции.
Но страница справочника cdrecord
уже содержит динамический пример как начальную точку:
Скопировать аудиокомпакт-диск с канала (без промежуточных файлов), первый показ
icedax dev=1,0 -vall cddb=0 -info-only
и затем выполненный
icedax dev=1,0 -no-infofile -B -Oraw - | \
wodim dev=2,0 -v -dao -audio -useinfo -text *.inf
Но после того, как Вам выяснили все, можно создать сценарий, который автоматизирует все эти шаги.
Вы 'могли' бы смочь сделать это, если можно сказать диску записать в 1x (то есть, скорость воспроизведения в реальном времени (который случайно является рекордной скоростью в реальном времени)). Иначе это не будет возможным, поскольку это требует пакетной записи, которая является для данных только (не redbook аудио).
Прием также мог бы заставлять программное обеспечение записи принимать открытый файл, поскольку это вводится, не имея возможности обнаружить, это измеряет, и затем корректно обработайте неожиданный EOF и закройте дорожку.