diff --git a/chat.py b/chat.py index e5ee705e528163a82f4f32ef0e8220be3c74dfff..ff6204cc5103cb1afff9890b42dee1fef5bbf6c8 100644 --- a/chat.py +++ b/chat.py @@ -60,6 +60,9 @@ def bbb_browser(): element = EC.invisibility_of_element((By.CSS_SELECTOR, '.ReactModal__Overlay')) WebDriverWait(browser, selelnium_timeout).until(element) + browser.find_element_by_id('message-input').send_keys("Watcher can send messages to this meeting") + browser.find_elements_by_css_selector('[aria-label="Send message"]')[0].click() + redis_r = redis.Redis(host=args.redis,charset="utf-8", decode_responses=True) redis_s = redis_r.pubsub() redis_s.psubscribe(**{args.channel:chat_handler}) diff --git a/stream.py b/stream.py index 1bea46976f65a1ed6b0ec0e586e9c189e74767a7..5809697d75c551cc59041642d814bf9b382ac75a 100644 --- a/stream.py +++ b/stream.py @@ -58,10 +58,14 @@ def bbb_browser(): element = EC.invisibility_of_element((By.CSS_SELECTOR, '.ReactModal__Overlay')) WebDriverWait(browser, selelnium_timeout).until(element) + browser.find_element_by_id('message-input').send_keys("This meeting will be stream to the following address: %s" % args.target) + browser.find_elements_by_css_selector('[aria-label="Send message"]')[0].click() browser.find_elements_by_id('chat-toggle-button')[0].click() browser.find_elements_by_css_selector('button[aria-label="Users and messages toggle"]')[0].click() browser.execute_script("document.querySelector('[aria-label=\"Users and messages toggle\"]').style.display='none';") browser.execute_script("document.querySelector('[aria-label=\"Options\"]').style.display='none';") + browser.execute_script("document.querySelector('[aria-label=\"Actions bar\"]').style.display='none';") + browser.execute_script("document.getElementById('container').setAttribute('style','margin-bottom:30px');") def get_join_url(): minfo = bbb.get_meeting_info(args.id) @@ -76,8 +80,10 @@ def watch(): time.sleep(60) def stream(): - logging.info('Starting Stream with cmd: ffmpeg -fflags +igndts -f x11grab -s 1920x1080 -r 24 -draw_mouse 0 -i :%d -f alsa -i pulse -ac 2 -preset ultrafaset -crf 0 -pix_fmt yuv420p -s 1920x1080 -c:a aac -b:a 160k -ar 44100 -threads 0 -f flv "%s"' % (122, args.target)) - ffmpeg_stream = 'ffmpeg -fflags +igndts -f x11grab -s 1920x1080 -r 24 -draw_mouse 0 -i :%d -f alsa -i pulse -ac 2 -preset ultrafaset -pix_fmt yuv420p -s 1920x1080 -c:a aac -b:a 160k -ar 44100 -threads 0 -f flv "%s"' % (122, args.target) + audio_options = '-f alsa -i pulse -ac 2 -c:a aac -b:a 160k -ar 44100' + #video_options = ' -c:v libvpx-vp9 -b:v 2000k -crf 33 -quality realtime -speed 5' + video_options = '-c:v libx264 -vf format=yuv420p -b:v 4000k -g 50 -preset ultrafast -tune zerolatency' + ffmpeg_stream = 'ffmpeg -thread_queue_size 512 -f x11grab -draw_mouse 0 -s 1920x1080 -i :%d %s -threads 0 %s -f flv "%s"' % ( 122, audio_options, video_options, args.target) ffmpeg_args = shlex.split(ffmpeg_stream) p = subprocess.Popen(ffmpeg_args)