libobs: Add func to get supported service codecs
Allows a service to return a list of codecs that are currently supportedmaster
parent
cc242ada58
commit
8a698e863d
|
@ -139,6 +139,15 @@ Service Definition Structure
|
|||
|
||||
:return: The output type that should be used with this service
|
||||
|
||||
.. member:: const char **(*get_supported_video_codecs)(void *data)
|
||||
|
||||
(Optional)
|
||||
|
||||
:return: A string pointer array of the supported video codecs, should
|
||||
be stored by the plugin so the caller does not need to free
|
||||
the data manually (typically best to use strlist_split to
|
||||
generate this)
|
||||
|
||||
|
||||
General Service Functions
|
||||
-------------------------
|
||||
|
@ -286,6 +295,14 @@ General Service Functions
|
|||
:param video_encoder_settings: Video encoder settings. Can be *NULL*
|
||||
:param audio_encoder_settings: Audio encoder settings. Can be *NULL*
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: const char **obs_service_get_supported_video_codecs(const obs_service_t *service)
|
||||
|
||||
:return: An array of string pointers containing the supported codecs
|
||||
for the service, terminated with a *NULL* pointer. Does not
|
||||
need to be freed
|
||||
|
||||
.. ---------------------------------------------------------------------------
|
||||
|
||||
.. _libobs/obs-service.h: https://github.com/obsproject/obs-studio/blob/master/libobs/obs-service.h
|
||||
|
|
|
@ -467,3 +467,12 @@ void obs_service_get_max_bitrate(const obs_service_t *service,
|
|||
service->info.get_max_bitrate(service->context.data,
|
||||
video_bitrate, audio_bitrate);
|
||||
}
|
||||
|
||||
const char **
|
||||
obs_service_get_supported_video_codecs(const obs_service_t *service)
|
||||
{
|
||||
if (service->info.get_supported_video_codecs)
|
||||
return service->info.get_supported_video_codecs(
|
||||
service->context.data);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -86,6 +86,8 @@ struct obs_service_info {
|
|||
|
||||
void (*get_max_bitrate)(void *data, int *video_bitrate,
|
||||
int *audio_bitrate);
|
||||
|
||||
const char **(*get_supported_video_codecs)(void *data);
|
||||
};
|
||||
|
||||
EXPORT void obs_register_service_s(const struct obs_service_info *info,
|
||||
|
|
|
@ -2474,6 +2474,9 @@ EXPORT void obs_service_get_max_fps(const obs_service_t *service, int *fps);
|
|||
EXPORT void obs_service_get_max_bitrate(const obs_service_t *service,
|
||||
int *video_bitrate, int *audio_bitrate);
|
||||
|
||||
EXPORT const char **
|
||||
obs_service_get_supported_video_codecs(const obs_service_t *service);
|
||||
|
||||
/* NOTE: This function is temporary and should be removed/replaced at a later
|
||||
* date. */
|
||||
EXPORT const char *obs_service_get_output_type(const obs_service_t *service);
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"$schema": "schema/package-schema.json",
|
||||
"url": "https://obsproject.com/obs2_update/rtmp-services",
|
||||
"version": 201,
|
||||
"version": 202,
|
||||
"files": [
|
||||
{
|
||||
"name": "services.json",
|
||||
"version": 201
|
||||
"version": 202
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -25,6 +25,32 @@
|
|||
"$ref": "#/definitions/saneUrl",
|
||||
"description": "Link where a logged-in user can find the 'stream key', presented as a button alongside the stream key field."
|
||||
},
|
||||
"supported video codecs": {
|
||||
"type": "array",
|
||||
"description": "Video codecs that are supported by the service.",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"description": "Short-form codec names.",
|
||||
"minLength": 1,
|
||||
"enum": [
|
||||
"h264",
|
||||
"hevc"
|
||||
]
|
||||
}
|
||||
},
|
||||
"supported audio codecs": {
|
||||
"type": "array",
|
||||
"description": "Audio codecs that are supported by the service.",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"description": "Short-form codec names.",
|
||||
"minLength": 1,
|
||||
"enum": [
|
||||
"aac",
|
||||
"opus"
|
||||
]
|
||||
}
|
||||
},
|
||||
"servers": {
|
||||
"type": "array",
|
||||
"description": "List of servers.",
|
||||
|
@ -209,4 +235,4 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,12 @@
|
|||
"name": "Twitch",
|
||||
"common": true,
|
||||
"stream_key_link": "https://dashboard.twitch.tv/settings/stream",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Asia: Hong Kong",
|
||||
|
@ -204,6 +210,13 @@
|
|||
"common": false,
|
||||
"more_info_link": "https://developers.google.com/youtube/v3/live/guides/ingestion-protocol-comparison",
|
||||
"stream_key_link": "https://www.youtube.com/live_dashboard",
|
||||
"supported video codecs": [
|
||||
"h264",
|
||||
"hevc"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Primary YouTube ingest server",
|
||||
|
@ -230,6 +243,12 @@
|
|||
"YouTube - RTMP",
|
||||
"YouTube - RTMPS (Beta)"
|
||||
],
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Primary YouTube ingest server",
|
||||
|
@ -257,6 +276,12 @@
|
|||
{
|
||||
"name": "Loola.tv",
|
||||
"common": false,
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "US East: Virginia",
|
||||
|
@ -290,6 +315,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Lovecast",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -311,6 +342,12 @@
|
|||
{
|
||||
"name": "Luzento.com - RTMP",
|
||||
"stream_key_link": "https://cms.luzento.com/dashboard/stream-key?from=OBS",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Primary",
|
||||
|
@ -331,6 +368,12 @@
|
|||
},
|
||||
{
|
||||
"name": "VIMM",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Europe: Frankfurt",
|
||||
|
@ -350,6 +393,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Mobcrush",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Primary",
|
||||
|
@ -365,6 +414,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Web.TV",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Primary",
|
||||
|
@ -380,6 +435,12 @@
|
|||
},
|
||||
{
|
||||
"name": "GoodGame.ru",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Моscow",
|
||||
|
@ -390,6 +451,12 @@
|
|||
{
|
||||
"name": "YouStreamer",
|
||||
"stream_key_link": "https://www.app.youstreamer.com/stream/",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Moscow",
|
||||
|
@ -399,6 +466,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Vaughn Live / iNSTAGIB",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "US: Chicago, IL",
|
||||
|
@ -441,6 +514,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Breakers.TV",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "US: Chicago, IL",
|
||||
|
@ -485,6 +564,12 @@
|
|||
"name": "Facebook Live",
|
||||
"common": true,
|
||||
"stream_key_link": "https://www.facebook.com/live/producer?ref=OBS",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -555,6 +640,12 @@
|
|||
],
|
||||
"common": true,
|
||||
"stream_key_link": "https://restream.io/settings/streaming-setup?from=OBS",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Autodetect",
|
||||
|
@ -667,6 +758,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Castr.io",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "US-East (Chicago, IL)",
|
||||
|
@ -759,6 +856,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Boomstream",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -768,6 +871,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Meridix Live Sports Platform",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Primary",
|
||||
|
@ -784,6 +893,12 @@
|
|||
"아프리카TV",
|
||||
"Afreeca.TV"
|
||||
],
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Asia : Korea",
|
||||
|
@ -819,6 +934,12 @@
|
|||
},
|
||||
{
|
||||
"name": "CAM4",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "CAM4",
|
||||
|
@ -834,6 +955,12 @@
|
|||
},
|
||||
{
|
||||
"name": "ePlay",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "ePlay Primary",
|
||||
|
@ -849,6 +976,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Picarto",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Autoselect closest server",
|
||||
|
@ -883,6 +1016,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Livestream",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Primary",
|
||||
|
@ -892,6 +1031,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Uscreen",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -906,6 +1051,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Stripchat",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Auto",
|
||||
|
@ -923,6 +1074,12 @@
|
|||
},
|
||||
{
|
||||
"name": "CamSoda",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "North America",
|
||||
|
@ -960,6 +1117,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Chaturbate",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Global Main Fastest - Recommended",
|
||||
|
@ -1039,6 +1202,12 @@
|
|||
"alt_names": [
|
||||
"Twitter / Periscope"
|
||||
],
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "US West: California",
|
||||
|
@ -1101,6 +1270,12 @@
|
|||
"alt_names": [
|
||||
"Switchboard Live (Joicaster)"
|
||||
],
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Global Zone (geo based)",
|
||||
|
@ -1168,6 +1343,12 @@
|
|||
{
|
||||
"name": "Looch",
|
||||
"common": false,
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Primary Looch ingest server",
|
||||
|
@ -1183,6 +1364,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Eventials",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1198,6 +1385,12 @@
|
|||
},
|
||||
{
|
||||
"name": "EventLive.pro",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1217,6 +1410,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Lahzenegar - StreamG | لحظهنگار - استریمجی",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Primary",
|
||||
|
@ -1236,6 +1435,12 @@
|
|||
},
|
||||
{
|
||||
"name": "MyLive",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1255,6 +1460,12 @@
|
|||
"Madcat"
|
||||
],
|
||||
"stream_key_link": "https://studio.trovo.live/mychannel/stream",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1270,6 +1481,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Mixcloud",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1294,6 +1511,12 @@
|
|||
"alt_names": [
|
||||
"SermonAudio.com"
|
||||
],
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Primary",
|
||||
|
@ -1307,6 +1530,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Vimeo",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1316,6 +1545,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Aparat",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1331,6 +1566,12 @@
|
|||
},
|
||||
{
|
||||
"name": "KakaoTV",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1344,6 +1585,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Piczel.tv",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1359,6 +1606,12 @@
|
|||
},
|
||||
{
|
||||
"name": "STAGE TEN",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "STAGE TEN",
|
||||
|
@ -1374,6 +1627,12 @@
|
|||
},
|
||||
{
|
||||
"name": "DLive",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1388,6 +1647,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Lightcast.com",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "North America / East",
|
||||
|
@ -1426,6 +1691,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Bongacams",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Automatic / Default",
|
||||
|
@ -1454,6 +1725,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Chathostess",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Chathostess - Backup",
|
||||
|
@ -1468,6 +1745,12 @@
|
|||
},
|
||||
{
|
||||
"name": "OnlyFans.com",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "USA",
|
||||
|
@ -1490,6 +1773,12 @@
|
|||
{
|
||||
"name": "YouNow",
|
||||
"common": false,
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"opus"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "younow.com",
|
||||
|
@ -1508,6 +1797,12 @@
|
|||
{
|
||||
"name": "Steam",
|
||||
"common": false,
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1523,6 +1818,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Konduit.live",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1536,6 +1837,12 @@
|
|||
},
|
||||
{
|
||||
"name": "LOCO",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1548,6 +1855,12 @@
|
|||
},
|
||||
{
|
||||
"name": "niconico, premium member (ニコニコ生放送 プレミアム会員)",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1564,6 +1877,12 @@
|
|||
},
|
||||
{
|
||||
"name": "niconico, free member (ニコニコ生放送 一般会員)",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1580,6 +1899,12 @@
|
|||
},
|
||||
{
|
||||
"name": "WASD.TV",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Automatic",
|
||||
|
@ -1606,6 +1931,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Nimo TV",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Global:1",
|
||||
|
@ -1628,6 +1959,12 @@
|
|||
},
|
||||
{
|
||||
"name": "XLoveCam.com",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Europe(main)",
|
||||
|
@ -1668,6 +2005,12 @@
|
|||
},
|
||||
{
|
||||
"name": "AngelThump",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Auto",
|
||||
|
@ -1715,6 +2058,12 @@
|
|||
},
|
||||
{
|
||||
"name": "api.video",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1729,6 +2078,12 @@
|
|||
},
|
||||
{
|
||||
"name": "SHOWROOM",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1745,6 +2100,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Mux",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Global (RTMPS)",
|
||||
|
@ -1763,6 +2124,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Viloud",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1777,6 +2144,12 @@
|
|||
},
|
||||
{
|
||||
"name": "MyFreeCams",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Automatic",
|
||||
|
@ -1822,6 +2195,12 @@
|
|||
},
|
||||
{
|
||||
"name": "PolyStreamer.com",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Auto-select closest server",
|
||||
|
@ -1863,6 +2242,12 @@
|
|||
{
|
||||
"name": "Glimesh",
|
||||
"stream_key_link": "https://glimesh.tv/users/settings/stream",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"opus"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "North America - Chicago, United States",
|
||||
|
@ -1913,6 +2298,12 @@
|
|||
{
|
||||
"name": "OPENREC.tv - Premium member (プレミアム会員)",
|
||||
"stream_key_link": "https://www.openrec.tv/login?keep_login=true&url=https://www.openrec.tv/dashboard/live?from=obs",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -1929,6 +2320,12 @@
|
|||
"name": "nanoStream Cloud / bintu",
|
||||
"more_info_link": "https://www.nanocosmos.de/obs",
|
||||
"stream_key_link": "https://bintu-cloud-frontend.nanocosmos.de/organisation",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "bintu-stream global ingest (rtmp)",
|
||||
|
@ -1998,6 +2395,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Dacast",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -2014,6 +2417,12 @@
|
|||
{
|
||||
"name": "Brime Live",
|
||||
"stream_key_link": "https://brime.tv/studio",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "North America - Ashburn, VA",
|
||||
|
@ -2041,6 +2450,12 @@
|
|||
"alt_names": [
|
||||
"Bilibili Live"
|
||||
],
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default | 默认",
|
||||
|
@ -2051,6 +2466,12 @@
|
|||
{
|
||||
"name": "Volume.com",
|
||||
"stream_key_link": "https://volume.com/b?show_key=1&webrtc=0",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default - Recommended",
|
||||
|
@ -2074,6 +2495,12 @@
|
|||
{
|
||||
"name": "BoxCast",
|
||||
"stream_key_link": "https://dashboard.boxcast.com/#/sources",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "BoxCast",
|
||||
|
@ -2083,6 +2510,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Disciple Media",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -2092,6 +2525,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Jio Games",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Primary",
|
||||
|
@ -2111,6 +2550,12 @@
|
|||
{
|
||||
"name": "Kuaishou Live",
|
||||
"stream_key_link": "https://studio.kuaishou.com/live/list",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -2124,6 +2569,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Utreon",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -2138,6 +2589,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Autistici.org Live",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -2153,6 +2610,12 @@
|
|||
{
|
||||
"name": "PhoneLiveStreaming",
|
||||
"stream_key_link": "https://app.phonelivestreaming.com/media/rtmp",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "PhoneLiveStreaming",
|
||||
|
@ -2167,6 +2630,12 @@
|
|||
},
|
||||
{
|
||||
"name": "ManyVids",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -2199,6 +2668,12 @@
|
|||
"name": "Fantasy.Club",
|
||||
"stream_key_link": "https://fantasy.club/app/create-content/stream-now",
|
||||
"more_info_link": "https://help.fantasy.club/",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "US: East",
|
||||
|
@ -2262,6 +2737,12 @@
|
|||
{
|
||||
"name": "Shareplay",
|
||||
"more_info_link": "https://shareplay.tv",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Default",
|
||||
|
@ -2326,6 +2807,12 @@
|
|||
},
|
||||
{
|
||||
"name": "Sympla",
|
||||
"supported video codecs": [
|
||||
"h264"
|
||||
],
|
||||
"supported audio codecs": [
|
||||
"aac"
|
||||
],
|
||||
"servers": [
|
||||
{
|
||||
"name": "Sympla RTMP",
|
||||
|
|
|
@ -21,6 +21,8 @@ struct rtmp_common {
|
|||
size_t supported_resolutions_count;
|
||||
int max_fps;
|
||||
|
||||
char **video_codecs;
|
||||
|
||||
bool supports_additional_audio_track;
|
||||
};
|
||||
|
||||
|
@ -113,17 +115,19 @@ static void rtmp_common_update(void *data, obs_data_t *settings)
|
|||
{
|
||||
struct rtmp_common *service = data;
|
||||
|
||||
bfree(service->supported_resolutions);
|
||||
bfree(service->video_codecs);
|
||||
bfree(service->service);
|
||||
bfree(service->server);
|
||||
bfree(service->output);
|
||||
bfree(service->key);
|
||||
bfree(service->supported_resolutions);
|
||||
|
||||
service->service = bstrdup(obs_data_get_string(settings, "service"));
|
||||
service->server = bstrdup(obs_data_get_string(settings, "server"));
|
||||
service->key = bstrdup(obs_data_get_string(settings, "key"));
|
||||
service->supports_additional_audio_track = false;
|
||||
service->output = NULL;
|
||||
service->video_codecs = NULL;
|
||||
service->supported_resolutions = NULL;
|
||||
service->supported_resolutions_count = 0;
|
||||
service->max_fps = 0;
|
||||
|
@ -160,6 +164,7 @@ static void rtmp_common_destroy(void *data)
|
|||
struct rtmp_common *service = data;
|
||||
|
||||
bfree(service->supported_resolutions);
|
||||
bfree(service->video_codecs);
|
||||
bfree(service->service);
|
||||
bfree(service->server);
|
||||
bfree(service->output);
|
||||
|
@ -850,6 +855,49 @@ fail:
|
|||
json_decref(root);
|
||||
}
|
||||
|
||||
static const char **rtmp_common_get_supported_video_codecs(void *data)
|
||||
{
|
||||
struct rtmp_common *service = data;
|
||||
|
||||
if (service->video_codecs)
|
||||
return service->video_codecs;
|
||||
|
||||
struct dstr codecs = {0};
|
||||
json_t *root = open_services_file();
|
||||
if (!root)
|
||||
return NULL;
|
||||
|
||||
json_t *json_service = find_service(root, service->service, NULL);
|
||||
if (!json_service) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
json_t *json_video_codecs =
|
||||
json_object_get(json_service, "supported video codecs");
|
||||
if (!json_is_array(json_video_codecs)) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
size_t index;
|
||||
json_t *item;
|
||||
|
||||
json_array_foreach (json_video_codecs, index, item) {
|
||||
char codec[16];
|
||||
|
||||
snprintf(codec, sizeof(codec), "%s", json_string_value(item));
|
||||
if (codecs.len)
|
||||
dstr_cat(&codecs, ";");
|
||||
dstr_cat(&codecs, codec);
|
||||
}
|
||||
|
||||
service->video_codecs = strlist_split(codecs.array, ';', false);
|
||||
dstr_free(&codecs);
|
||||
|
||||
fail:
|
||||
json_decref(root);
|
||||
return service->video_codecs;
|
||||
}
|
||||
|
||||
static const char *rtmp_common_username(void *data)
|
||||
{
|
||||
struct rtmp_common *service = data;
|
||||
|
@ -892,4 +940,5 @@ struct obs_service_info rtmp_common_service = {
|
|||
.get_supported_resolutions = rtmp_common_get_supported_resolutions,
|
||||
.get_max_fps = rtmp_common_get_max_fps,
|
||||
.get_max_bitrate = rtmp_common_get_max_bitrate,
|
||||
.get_supported_video_codecs = rtmp_common_get_supported_video_codecs,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue