Есть ли способ, чтобы ffmpeg конвертировал изображения, поступающие в HLS, и останавливался, когда я захочу?
Я использую ffmpeg для преобразования изображений в m3u8/ts для потоковой передачи. Устройство камеры будет отправлять изображения 24 часа в сутки, 7 дней в неделю, а ffmpeg будет преобразовывать их по запросу пользователей, пока они не перестанут смотреть.
На данный момент я получаю изображения с устройства камеры по сети Java, затем перемещаю эти изображения во входной каталог ffmpeg и конвертирую их с помощью C++. Это цикл, который выполняет эту работу, поэтому новый ffmpeg выполняется каждый раз, когда изображения перемещаются.
Проблема в том, что осталось слишком много файлов ts, и они занимают много места на сервере. Поэтому я попытался удалить те, у которых есть опция delete_segments, но, поскольку ffmpeg выполняется каждый раз, он не мог удалить сегменты, созданные из ffmpeg прямо перед ним.
Вот несколько способов, которые я рассматриваю:
- Чтобы удалить файлы с другой функцией, без ffmpeg.
- Возможно, передавать изображения непосредственно на вход ffmpeg и каким-то образом заставить ffmpeg продолжать преобразовывать эти изображения в ts. (А я как-то не мог придумать)
- Или, может быть, изменить всю структуру.
Было бы намного проще с вариантом 1, но было бы здорово, если бы я мог сделать это с помощью собственных функций ffmpeg.
-i image.jpg
, и каждый раз, когда ему требуется обновление, другое изображение атомарно переименовываетсяimage.jpg
, заменяя старое. Не могу ничего предложить, не видя вашей команды. См. раздел Изменение наложения изображения по требованию. - person llogan   schedule 19.09.2019