Files
2026-06-08 12:02:00 +02:00

35 lines
1.0 KiB
Python

from __future__ import annotations
import logging
import signal
import threading
from restream_playout import PlayoutEngine
def main() -> None:
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(name)s %(message)s")
stopped = threading.Event()
engine = PlayoutEngine("rtmp://live.restream.io/live/STREAM_KEY")
engine.on_clip_started(lambda path: logging.info("clip started: %s", path))
engine.on_clip_finished(lambda path: logging.info("clip finished: %s", path))
engine.on_queue_empty(lambda: logging.info("filler active"))
engine.on_stream_connected(lambda: logging.info("stream connected"))
engine.on_stream_disconnected(lambda: logging.warning("stream disconnected"))
signal.signal(signal.SIGINT, lambda *_: stopped.set())
signal.signal(signal.SIGTERM, lambda *_: stopped.set())
engine.enqueue_many(["intro.mp4", "video1.mp4"])
engine.start()
try:
stopped.wait()
finally:
engine.stop()
if __name__ == "__main__":
main()