├── vaporware_background_1920x1080.png ├── README.md ├── SETUP_ITA.md ├── CHECKLIST_ITA.md ├── speaker.html └── scene_pymi.json /vaporware_background_1920x1080.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pietroppeter/PyMI-OBS-setup/main/vaporware_background_1920x1080.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PyMI-OBS-setup 2 | 3 | * See SETUP_ITA.md (Italian) for OBS setup. 4 | * See CHECKLIST_ITA.md (Italian) for stuff to do at the meeting. 5 | -------------------------------------------------------------------------------- /SETUP_ITA.md: -------------------------------------------------------------------------------- 1 | # Crash course 2 | OBS Studio permette di fare il setup di scene in cui si può: 3 | * Fare vedere uno sfondo 4 | * Fare vedere un testo HTML 5 | * Fare vedere lo streaming delle slide dal PC dello speaker 6 | * Fare vedere input della telecamera 7 | * Fare sentire input dei microfoni 8 | 9 | Nelle scene si selezionano questi input a seconda della situazione 10 | ad esempio nella scena "OnlySlides" il segnale della telecamera 11 | non viene fatto vedere 12 | 13 | Le scene sono già pronte. 14 | 15 | # Setup 16 | 17 | * Collegare telecamera. 18 | * Collegare microfoni il pezzo a T è il trasmettitore. 19 | * Aprire OBS Studio. 20 | * Import Scene, puntare alla directory che contiene scene_pymi.json 21 | * Ci sarà un errore perché non troverà il file speaker.html 22 | * OBS manderà un avviso e bisogna farlo puntare al path giusto. 23 | * Le scene sono WaitScreen, SpeakerAndSlides, OnlySlides, OnlySpeaker. 24 | * Nel caso manchi qualcosa in "Sources" per una certa scena è possibile aggiungere con tasto destro sulla scena "Add Source". 25 | * Il setup delle slide è da fare la sera del meetup, vedi: CHECKLIST_ITA.md 26 | * Lo schema degli stream è in OBS-Streams.excalidraw, aprire in https://excalidraw.com/ usando "Open". 27 | * Bisogna cambiare il nome degli speaker in speaker.html la sera del meetup. 28 | -------------------------------------------------------------------------------- /CHECKLIST_ITA.md: -------------------------------------------------------------------------------- 1 | # Checklist per streaming video 2 | 3 | * host = membro dello staff pythonmilano 4 | * speaker = un-grande-pythonista 5 | 6 | ## Il giorno prima 7 | 8 | * Caricare i microfoni 9 | * host deve aver generato la streaming da YouTube Studio 10 | * (https://www.youtube.com/watch?v=VfzToppf_rw 11 | 12 | ## Il giorno del meetup 13 | 14 | * host edita il file speaker.html coi dati della serata 15 | * host attacca telecamera e microfoni 16 | * host avvia OBS studio 17 | * host si assicura che camera e microfoni vadano 18 | * nelle scene SpeakerAndSlides e OnlySpeaker si deve vedere la camera centrata 19 | * i microfoni si dovrebbero sentire in una breve registrazione 20 | * idealmente, un mic dovrebbe essere passato al pubblico per le domande alla fine 21 | 22 | * speaker e host si collegano alla wifi 23 | 24 | * speaker va su https://vdo.ninja 25 | * speaker click su screen share 26 | * speaker condivide lo schermo 27 | * speaker indica all'host l'URL https://vdo.ninja/?view=XXXXXXX 28 | * attenzione che sia l'URL con scritto "view=" e non "push=" 29 | * essendo lo schema dell'URL sempre quello, si può anche dettare la parte dopo view= 30 | 31 | * host va su OBS, doppio click su NinjaSlides (scena OnlySlides o SpeakerAndSlides) 32 | * host aggiorna l'URL di quella sorgente usando https://vdo.ninja/?view=XXXXXXX 33 | * host verifica che in SpeakerAndSlides e OnlySlides si veda lo schermo dello speaker 34 | 35 | * host deve aver configurato la streaming key usando la chiave da YouTube per questo live 36 | 37 | * host a questo punto dovrebbe essere Ok: 38 | * mette scena WaitScreen finché si è in attesa 39 | * click su Start Recording (di sicurezza se cade la connessione) + Start Streaming 40 | * quando gli speaker sono pronti e si parte, click su SpeakerAndSlides 41 | * la regia può cambiare scena secondo preferenze/necessità 42 | * quello che si vede nella finestra di preview è quello che si vedrà nel record/stream 43 | 44 | -------------------------------------------------------------------------------- /speaker.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | PyMi Info Panel 7 | 67 | 68 | 69 | 70 | 82 | 83 | 84 | 85 | 90 |

Django + Clean Architecture + Wine (drinkable Wine)

91 | 92 | -------------------------------------------------------------------------------- /scene_pymi.json: -------------------------------------------------------------------------------- 1 | {"AuxAudioDevice1":{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"filters":[{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{},"id":"noise_suppress_filter","mixers":255,"monitoring_type":0,"muted":false,"name":"Noise Suppression","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"method":"speex","suppress_level":-52},"sync":0,"versioned_id":"noise_suppress_filter_v2","volume":1.0}],"flags":0,"hotkeys":{"libobs.mute":[],"libobs.push-to-mute":[],"libobs.push-to-talk":[],"libobs.unmute":[]},"id":"pulse_input_capture","mixers":255,"monitoring_type":0,"muted":true,"name":"Mic/Aux","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"device_id":"default"},"sync":0,"versioned_id":"pulse_input_capture","volume":0.43325266242027283},"DesktopAudioDevice1":{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{"libobs.mute":[],"libobs.push-to-mute":[],"libobs.push-to-talk":[],"libobs.unmute":[]},"id":"pulse_output_capture","mixers":255,"monitoring_type":0,"muted":true,"name":"Desktop Audio","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"device_id":"default"},"sync":0,"versioned_id":"pulse_output_capture","volume":1.0},"current_program_scene":"WaitScreen","current_scene":"WaitScreen","current_transition":"Fade","groups":[],"modules":{"auto-scene-switcher":{"active":false,"interval":300,"non_matching_scene":"","switch_if_not_matching":false,"switches":[]},"decklink_captions":{"source":""},"output-timer":{"autoStartRecordTimer":false,"autoStartStreamTimer":false,"pauseRecordTimer":true,"recordTimerHours":0,"recordTimerMinutes":0,"recordTimerSeconds":30,"streamTimerHours":0,"streamTimerMinutes":0,"streamTimerSeconds":30},"scripts-tool":[]},"name":"PyMilano","preview_locked":false,"quick_transitions":[{"duration":300,"fade_to_black":false,"hotkeys":[],"id":1,"name":"Cut"},{"duration":300,"fade_to_black":false,"hotkeys":[],"id":2,"name":"Fade"},{"duration":300,"fade_to_black":true,"hotkeys":[],"id":3,"name":"Fade"}],"saved_projectors":[],"scaling_enabled":false,"scaling_level":0,"scaling_off_x":0.0,"scaling_off_y":0.0,"scene_order":[{"name":"WaitScreen"},{"name":"SpeakerAndSlides"},{"name":"OnlySlides"},{"name":"OnlySpeaker"}],"sources":[{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{"OBSBasic.SelectScene":[],"libobs.hide_scene_item.Background":[],"libobs.show_scene_item.Background":[]},"id":"scene","mixers":0,"monitoring_type":0,"muted":false,"name":"WaitScreen","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"custom_size":false,"id_counter":2,"items":[{"align":5,"blend_type":"normal","bounds":{"x":1920.0,"y":1080.0},"bounds_align":0,"bounds_type":1,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":1,"locked":true,"name":"Background","pos":{"x":0.0,"y":0.0},"private_settings":{},"rot":0.0,"scale":{"x":1.0,"y":1.0},"scale_filter":"disable","show_transition":{"duration":0},"visible":true}]},"sync":0,"versioned_id":"scene","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{"OBSBasic.SelectScene":[],"libobs.hide_scene_item.Background":[],"libobs.hide_scene_item.DarkenBG":[],"libobs.hide_scene_item.InfoPanel":[],"libobs.hide_scene_item.NinjaSlides":[],"libobs.hide_scene_item.PTZ camera":[],"libobs.show_scene_item.Background":[],"libobs.show_scene_item.DarkenBG":[],"libobs.show_scene_item.InfoPanel":[],"libobs.show_scene_item.NinjaSlides":[],"libobs.show_scene_item.PTZ camera":[]},"id":"scene","mixers":0,"monitoring_type":0,"muted":false,"name":"SpeakerAndSlides","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"custom_size":false,"id_counter":29,"items":[{"align":5,"blend_type":"normal","bounds":{"x":1920.0,"y":1080.0},"bounds_align":0,"bounds_type":1,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":19,"locked":true,"name":"Background","pos":{"x":0.0,"y":0.0},"private_settings":{},"rot":0.0,"scale":{"x":1.0,"y":1.0},"scale_filter":"disable","show_transition":{"duration":0},"visible":true},{"align":5,"blend_type":"normal","bounds":{"x":0.0,"y":0.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":25,"locked":true,"name":"DarkenBG","pos":{"x":21.000003814697266,"y":91.5},"private_settings":{},"rot":0.0,"scale":{"x":3.315000057220459,"y":9.7650012969970703},"scale_filter":"disable","show_transition":{"duration":0},"visible":true},{"align":5,"blend_type":"normal","bounds":{"x":1.0,"y":1.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":28,"locked":true,"name":"InfoPanel","pos":{"x":21.0,"y":557.0},"private_settings":{},"rot":0.0,"scale":{"x":0.5377049446105957,"y":0.53829789161682129},"scale_filter":"disable","show_transition":{"duration":0},"visible":true},{"align":5,"blend_type":"normal","bounds":{"x":318.5,"y":455.5},"bounds_align":0,"bounds_type":5,"crop_bottom":0,"crop_left":580,"crop_right":580,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":18,"locked":true,"name":"PTZ camera","pos":{"x":29.0,"y":101.0},"private_settings":{},"rot":0.0,"scale":{"x":1.5,"y":1.5},"scale_filter":"disable","show_transition":{"duration":0},"visible":true},{"align":5,"blend_type":"normal","bounds":{"x":0.0,"y":0.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":26,"locked":true,"name":"NinjaSlides","pos":{"x":363.0,"y":102.0},"private_settings":{},"rot":0.0,"scale":{"x":1.5,"y":1.5},"scale_filter":"disable","show_transition":{"duration":0},"visible":true}]},"sync":0,"versioned_id":"scene","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{"OBSBasic.SelectScene":[],"libobs.hide_scene_item.Background":[],"libobs.hide_scene_item.NinjaSlides":[],"libobs.show_scene_item.Background":[],"libobs.show_scene_item.NinjaSlides":[]},"id":"scene","mixers":0,"monitoring_type":0,"muted":false,"name":"OnlySlides","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"custom_size":false,"id_counter":4,"items":[{"align":5,"blend_type":"normal","bounds":{"x":1.0,"y":1.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":1,"locked":true,"name":"Background","pos":{"x":0.0,"y":0.0},"private_settings":{},"rot":0.0,"scale":{"x":1.0,"y":1.0},"scale_filter":"disable","show_transition":{"duration":0},"visible":true},{"align":5,"blend_type":"normal","bounds":{"x":1886.0,"y":963.0},"bounds_align":0,"bounds_type":2,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":2,"locked":true,"name":"NinjaSlides","pos":{"x":18.0,"y":99.0},"private_settings":{},"rot":0.0,"scale":{"x":1.5,"y":1.5},"scale_filter":"disable","show_transition":{"duration":0},"visible":true}]},"sync":0,"versioned_id":"scene","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{"ObsBrowser.Refresh":[],"libobs.mute":[],"libobs.push-to-mute":[],"libobs.push-to-talk":[],"libobs.unmute":[]},"id":"browser_source","mixers":255,"monitoring_type":0,"muted":false,"name":"NinjaSlides","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"fps":30,"height":644,"shutdown":false,"url":"https://lovdo.ale.re:8443/?view=5YYK2s3","width":1020},"sync":0,"versioned_id":"browser_source","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{"ObsBrowser.Refresh":[],"libobs.mute":[],"libobs.push-to-mute":[],"libobs.push-to-talk":[],"libobs.unmute":[]},"id":"browser_source","mixers":255,"monitoring_type":0,"muted":false,"name":"InfoPanel","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"css":"","fps":10,"height":940,"is_local_file":true,"local_file":"/home/akiross/Projects/PyMilano/speaker.html","restart_when_active":true,"webpage_control_level":0,"width":610},"sync":0,"versioned_id":"browser_source","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{},"id":"color_source","mixers":0,"monitoring_type":0,"muted":false,"name":"DarkenBG","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"color":3858759680,"height":100,"width":100},"sync":0,"versioned_id":"color_source_v3","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{},"id":"v4l2_input","mixers":0,"monitoring_type":0,"muted":false,"name":"PTZ camera","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"device_id":"/dev/video3","input":0,"pixelformat":1196444237},"sync":0,"versioned_id":"v4l2_input","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{},"id":"image_source","mixers":0,"monitoring_type":0,"muted":false,"name":"Background","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"file":"/home/akiross/Projects/PyMilano/Images/vaporware_background_1920x1080.png"},"sync":0,"versioned_id":"image_source","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{"OBSBasic.SelectScene":[],"libobs.hide_scene_item.Background":[],"libobs.hide_scene_item.DarkenBG":[],"libobs.hide_scene_item.InfoPanel":[],"libobs.hide_scene_item.PTZ camera":[],"libobs.show_scene_item.Background":[],"libobs.show_scene_item.DarkenBG":[],"libobs.show_scene_item.InfoPanel":[],"libobs.show_scene_item.PTZ camera":[]},"id":"scene","mixers":0,"monitoring_type":0,"muted":false,"name":"OnlySpeaker","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"custom_size":false,"id_counter":7,"items":[{"align":5,"blend_type":"normal","bounds":{"x":1.0,"y":1.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":2,"locked":true,"name":"Background","pos":{"x":0.0,"y":0.0},"private_settings":{},"rot":0.0,"scale":{"x":1.0,"y":1.0},"scale_filter":"disable","show_transition":{"duration":0},"visible":true},{"align":5,"blend_type":"normal","bounds":{"x":1257.0,"y":967.0},"bounds_align":0,"bounds_type":2,"crop_bottom":0,"crop_left":114,"crop_right":157,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":1,"locked":true,"name":"PTZ camera","pos":{"x":652.0,"y":106.0},"private_settings":{},"rot":0.0,"scale":{"x":1.5,"y":1.5},"scale_filter":"disable","show_transition":{"duration":0},"visible":true},{"align":5,"blend_type":"normal","bounds":{"x":0.0,"y":0.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":5,"locked":true,"name":"DarkenBG","pos":{"x":19.5,"y":100.5},"private_settings":{},"rot":0.0,"scale":{"x":6.2250003814697266,"y":9.7650003433227539},"scale_filter":"disable","show_transition":{"duration":0},"visible":true},{"align":5,"blend_type":"normal","bounds":{"x":1.0,"y":1.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":6,"locked":true,"name":"InfoPanel","pos":{"x":24.0,"y":120.0},"private_settings":{},"rot":0.0,"scale":{"x":1.0065573453903198,"y":1.0065789222717285},"scale_filter":"disable","show_transition":{"duration":0},"visible":true}]},"sync":0,"versioned_id":"scene","volume":1.0}],"transition_duration":300,"transitions":[{"id":"swipe_transition","name":"Swipe","settings":{"direction":"left"}}]} --------------------------------------------------------------------------------