Téléverser les fichiers vers "methode2"

Pour le scriptboth, c'est le script pour envoyer deux flux en même temps,
Pour le switchprofil, c'est le script pour changer de profil pour lancer plusieurs flux en utilisant des informations différentes
This commit is contained in:
Alexis THOLIMET 2024-06-12 16:46:52 +02:00
parent 3ce51283ce
commit da690cd515
2 changed files with 188 additions and 0 deletions

128
methode2/scriptboth.lua Normal file
View File

@ -0,0 +1,128 @@
obs = obslua
youtube_output = nil
twitch_output = nil
function script_description()
return "Multi RTMP Output - Diffusez sur plusieurs serveurs RTMP simultanément. Configurer les serveurs RTMP pour YouTube et Twitch."
end
function script_properties()
local props = obs.obs_properties_create()
-- Paramètres YouTube
obs.obs_properties_add_text(props, "youtube_server", "YouTube RTMP Server", obs.OBS_TEXT_DEFAULT)
obs.obs_properties_add_text(props, "youtube_key", "YouTube Stream Key", obs.OBS_TEXT_PASSWORD)
-- Paramètres Twitch
obs.obs_properties_add_text(props, "twitch_server", "Twitch RTMP Server", obs.OBS_TEXT_DEFAULT)
obs.obs_properties_add_text(props, "twitch_key", "Twitch Stream Key", obs.OBS_TEXT_PASSWORD)
obs.obs_properties_add_button(props, "start_youtube", "Commencer YouTube Streaming", start_youtube_streaming)
obs.obs_properties_add_button(props, "stop_youtube", "Arrêter YouTube Streaming", stop_youtube_streaming)
obs.obs_properties_add_button(props, "start_twitch", "Commencer Twitch Streaming", start_twitch_streaming)
obs.obs_properties_add_button(props, "stop_twitch", "Arrêter Twitch Streaming", stop_twitch_streaming)
obs.obs_properties_add_button(props, "start_both", "Commencer les deux Streaming", start_both_streaming)
obs.obs_properties_add_button(props, "stop_both", "Arrêter les deux Streaming", stop_both_streaming)
return props
end
function script_update(settings)
local youtube_server = obs.obs_data_get_string(settings, "youtube_server")
local youtube_key = obs.obs_data_get_string(settings, "youtube_key")
local twitch_server = obs.obs_data_get_string(settings, "twitch_server")
local twitch_key = obs.obs_data_get_string(settings, "twitch_key")
if youtube_server ~= "" and youtube_key ~= "" then
local youtube_settings = obs.obs_data_create()
obs.obs_data_set_string(youtube_settings, "server", youtube_server)
obs.obs_data_set_string(youtube_settings, "key", youtube_key)
local youtube_service = obs.obs_service_create("rtmp_custom", "YouTube RTMP Service", youtube_settings, nil)
youtube_output = obs.obs_output_create("rtmp_output", "YouTube RTMP Output", nil, nil)
obs.obs_output_set_service(youtube_output, youtube_service)
obs.obs_data_release(youtube_settings)
obs.script_log(obs.LOG_INFO, "YouTube RTMP output configured")
end
if twitch_server ~= "" and twitch_key ~= "" then
local twitch_settings = obs.obs_data_create()
obs.obs_data_set_string(twitch_settings, "server", twitch_server)
obs.obs_data_set_string(twitch_settings, "key", twitch_key)
local twitch_service = obs.obs_service_create("rtmp_custom", "Twitch RTMP Service", twitch_settings, nil)
twitch_output = obs.obs_output_create("rtmp_output", "Twitch RTMP Output", nil, nil)
obs.obs_output_set_service(twitch_output, twitch_service)
obs.obs_data_release(twitch_settings)
obs.script_log(obs.LOG_INFO, "Twitch RTMP output configured")
end
end
function start_youtube_streaming(props, prop)
if youtube_output then
if not obs.obs_output_active(youtube_output) then
local success = obs.obs_output_start(youtube_output)
if success then
obs.script_log(obs.LOG_INFO, "Started YouTube RTMP output")
else
obs.script_log(obs.LOG_ERROR, "Failed to start YouTube RTMP output")
end
end
end
end
function stop_youtube_streaming(props, prop)
if youtube_output then
if obs.obs_output_active(youtube_output) then
obs.obs_output_stop(youtube_output)
obs.script_log(obs.LOG_INFO, "Stopped YouTube RTMP output")
end
end
end
function start_twitch_streaming(props, prop)
if twitch_output then
if not obs.obs_output_active(twitch_output) then
local success = obs.obs_output_start(twitch_output)
if success then
obs.script_log(obs.LOG_INFO, "Started Twitch RTMP output")
else
obs.script_log(obs.LOG_ERROR, "Failed to start Twitch RTMP output")
end
end
end
end
function stop_twitch_streaming(props, prop)
if twitch_output then
if obs.obs_output_active(twitch_output) then
obs.obs_output_stop(twitch_output)
obs.script_log(obs.LOG_INFO, "Stopped Twitch RTMP output")
end
end
end
function start_both_streaming(props, prop)
start_youtube_streaming(props, prop)
start_twitch_streaming(props, prop)
end
function stop_both_streaming(props, prop)
stop_youtube_streaming(props, prop)
stop_twitch_streaming(props, prop)
end
function script_load(settings)
obs.obs_frontend_add_event_callback(function(event)
if event == obs.OBS_FRONTEND_EVENT_STREAMING_STARTING then
start_both_streaming(nil, nil)
elseif event == obs.OBS_FRONTEND_EVENT_STREAMING_STOPPING then
stop_both_streaming(nil, nil)
end
end)
end

View File

@ -0,0 +1,60 @@
obs = obslua
youtube_server = "rtmp://a.rtmp.youtube.com/live2"
youtube_key = "VOTRE_CLE_YOUTUBE"
twitch_server = "rtmp://live.twitch.tv/app"
twitch_key = "VOTRE_CLE_TWITCH"
youtube_output = nil
twitch_output = nil
function script_description()
return "Script pour lancer des streams simultanés sur YouTube et Twitch."
end
function script_properties()
local props = obs.obs_properties_create()
obs.obs_properties_add_button(props, "start_both", "Lancer YouTube et Twitch", start_both_streams)
obs.obs_properties_add_button(props, "stop_both", "Arrêter YouTube et Twitch", stop_both_streams)
return props
end
function start_both_streams(props, p)
start_stream(youtube_server, youtube_key, "YouTube")
start_stream(twitch_server, twitch_key, "Twitch")
end
function stop_both_streams(props, p)
stop_stream(youtube_output)
stop_stream(twitch_output)
end
function start_stream(server, key, name)
local settings = obs.obs_data_create()
obs.obs_data_set_string(settings, "server", server)
obs.obs_data_set_string(settings, "key", key)
local service = obs.obs_service_create("rtmp_common", "service", settings, nil)
local output = obs.obs_output_create("rtmp_output", name, nil, nil)
obs.obs_output_set_service(output, service)
obs.obs_output_start(output)
if name == "YouTube" then
youtube_output = output
elseif name == "Twitch" then
twitch_output = output
end
obs.obs_data_release(settings)
obs.obs_service_release(service)
end
function stop_stream(output)
if output and obs.obs_output_active(output) then
obs.obs_output_stop(output)
obs.obs_output_release(output)
end
end