Я использую ffmpeg для записи онлайн-трансляции. Я хочу записать небольшими частями, убив процесс ffmpeg и начав заново. Попытка сделать это с помощью команды watch -n 40 "pkill ffmpeg; ffmpeg -i http://SiteName.com/playlist.m3u8 radioSTREAM.$(date +%d-%m-%g-%Hh%Mm%Ss).mp3"
, но она застряла. Как заставить это работать?
Дополнительный вопрос: как поместить всю эту конструкцию в команду at
?
Более изящное решение состоит в том, чтобы использовать сегмент muxer :
ffmpeg -i input -c copy -f segment -segment_time 40 output_%03d.mp3
Результаты приблизительно в 40-секундных сегментах:
$ ls -m1
output_000.mp3
output_001.mp3
...
output_010.mp3
пример старается не повторно кодировать при помощи потоковая копия режим и предполагает, что входные и выходные форматы являются тем же (MP3 в этом примере).
Поместите его в сценарий оболочки так, чтобы у Вас был менее хитрый выход, Вы можете также выполненный, что сценарий оболочки от при команде
, при выполнении сценария оболочки следующим образом
bash -x ./script.sh
, Вы будете видеть то, что оценивает переменные, имеют в каждой точке в сценарии.