screenstreamer/screenstreamer/streamer.py

16 lines
537 B
Python
Raw Normal View History

2022-10-07 20:31:31 +02:00
import ffmpeg
class Streamer:
2022-10-07 21:21:00 +02:00
def __init__(self, screendef: str, screensize: str, protocol: str, target: str) -> None:
2022-10-07 20:31:31 +02:00
self.screendef = screendef
self.screensize = screensize
2022-10-07 21:21:00 +02:00
self.protocol = protocol # should be 'tcp' or 'udp'
2022-10-07 20:31:31 +02:00
self.target = target
def start(self):
self.input = ffmpeg.input(self.screendef, f='x11grab', r=60, s=self.screensize)
2022-10-07 21:21:00 +02:00
self.output = ffmpeg.output(self.input, self.protocol + '://' + self.target, f='mpegts', vcodec='nvenc_hevc', tune='zerolatency')
2022-10-07 20:31:31 +02:00
self.proc = ffmpeg.run_async(self.output)