У меня есть несколько скриптов, реализующих потоковую передачу, запись в файл и объединяющих поток+запись. Но как реализовать, когда потоковая передача и происходит какое-то событие, чтобы начать запись в файл с предварительно заполненным буфером - например, буфером предварительного оповещения. Или сохранять сегментированные файлы и когда происходит событие, объединять t-5 и t+5?
Возможно ли это с помощью FFMPEG + скрипт?
решение1
Да, это возможно.
Используйте ffmpeg
для генерации видеосегментов HLS. После события (или даже во время) вы можете объединить последовательные .ts
файлы на основе их имени или временной метки во временный файл, а затем преобразовать их в формат, например MP4.
У меня нет под рукой образца кода, но мы делаем что-то похожее внутри компании. (Планируется опубликовать это на GitHub в будущем.)