mirror of
https://github.com/ApfelTeeSaft/restream_playout.git
synced 2026-08-26 19:33:32 +00:00
35 lines
1.0 KiB
Python
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()
|
|
|