diff --git a/composer.phar b/composer.phar new file mode 100755 index 0000000..041775a Binary files /dev/null and b/composer.phar differ diff --git a/src/Component/Services/CyberGameTV.php b/src/Component/Services/CyberGameTV.php new file mode 100644 index 0000000..16fc063 --- /dev/null +++ b/src/Component/Services/CyberGameTV.php @@ -0,0 +1,53 @@ + + */ +class CyberGameTV extends AbstractService +{ + /** + * @return string + * @author Soner Sayakci + */ + public function getName(): string + { + return 'CyberGame.TV'; + } + + /** + * @return bool + * @author Soner Sayakci + */ + public function hasServerList(): bool + { + return true; + } + + /** + * @return array + * @author Soner Sayakci + */ + public function getServerList(): array + { + return [ + 'RU Origin' => 'rtmp://st.cybergame.tv:1953/live', + 'RU Premium' => 'rtmp://premium.cybergame.tv:1953/premium' + ]; + } + + /** + * @param Endpoint $endpoint + * @return string + * @author Soner Sayakci + */ + public function buildStreamUrl(Endpoint $endpoint): string + { + return $endpoint->getServer() . '/' . $endpoint->getStreamKey(); + } +} diff --git a/src/Component/Services/GoodGame.php b/src/Component/Services/GoodGame.php new file mode 100644 index 0000000..2e832fb --- /dev/null +++ b/src/Component/Services/GoodGame.php @@ -0,0 +1,52 @@ + + */ +class GoodGame extends AbstractService +{ + /** + * @return string + * @author Soner Sayakci + */ + public function getName(): string + { + return 'GoodGame'; + } + + /** + * @return bool + * @author Soner Sayakci + */ + public function hasServerList(): bool + { + return true; + } + + /** + * @return array + * @author Soner Sayakci + */ + public function getServerList(): array + { + return [ + 'Moscow' => 'rtmp://msk.goodgame.ru:1940/live' + ]; + } + + /** + * @param Endpoint $endpoint + * @return string + * @author Soner Sayakci + */ + public function buildStreamUrl(Endpoint $endpoint): string + { + return $endpoint->getServer() . '/' . $endpoint->getStreamKey(); + } +} diff --git a/src/Component/Services/Livestream.php b/src/Component/Services/Livestream.php new file mode 100644 index 0000000..a316233 --- /dev/null +++ b/src/Component/Services/Livestream.php @@ -0,0 +1,52 @@ + + */ +class Livestream extends AbstractService +{ + /** + * @return string + * @author Soner Sayakci + */ + public function getName(): string + { + return 'Livestream'; + } + + /** + * @return bool + * @author Soner Sayakci + */ + public function hasServerList(): bool + { + return true; + } + + /** + * @return array + * @author Soner Sayakci + */ + public function getServerList(): array + { + return [ + 'Default' => 'rtmp://rtmpin.livestreamingest.com/rtmpin' + ]; + } + + /** + * @param Endpoint $endpoint + * @return string + * @author Soner Sayakci + */ + public function buildStreamUrl(Endpoint $endpoint): string + { + return $endpoint->getServer() . '/' . $endpoint->getStreamKey(); + } +} diff --git a/src/Component/Services/StreamLive.php b/src/Component/Services/StreamLive.php new file mode 100644 index 0000000..8fdeafa --- /dev/null +++ b/src/Component/Services/StreamLive.php @@ -0,0 +1,52 @@ + + */ +class StreamLive extends AbstractService +{ + /** + * @return string + * @author Soner Sayakci + */ + public function getName(): string + { + return 'Stream.Live'; + } + + /** + * @return bool + * @author Soner Sayakci + */ + public function hasServerList(): bool + { + return true; + } + + /** + * @return array + * @author Soner Sayakci + */ + public function getServerList(): array + { + return [ + 'Default' => 'rtmp://media.stream.live:1935/live' + ]; + } + + /** + * @param Endpoint $endpoint + * @return string + * @author Soner Sayakci + */ + public function buildStreamUrl(Endpoint $endpoint): string + { + return $endpoint->getServer() . '/' . $endpoint->getStreamKey(); + } +} diff --git a/src/Component/Services/StreamMe.php b/src/Component/Services/StreamMe.php new file mode 100644 index 0000000..847530f --- /dev/null +++ b/src/Component/Services/StreamMe.php @@ -0,0 +1,56 @@ + + */ +class StreamMe extends AbstractService +{ + /** + * @return string + * @author Soner Sayakci + */ + public function getName(): string + { + return 'Stream.me'; + } + + /** + * @return bool + * @author Soner Sayakci + */ + public function hasServerList(): bool + { + return true; + } + + /** + * @return array + * @author Soner Sayakci + */ + public function getServerList(): array + { + return [ + 'US, Central' => 'rtmp://uc-origin.stream.me/origin', + 'US, East' => 'rtmp://ue-origin.stream.me/origin', + 'US, West' => 'rtmp://uw-origin.stream.me/origin', + 'Europe, West' => 'rtmp://ew-origin.stream.me/origin', + 'Asia, East' => 'rtmp://ae-origin.stream.me/origin' + ]; + } + + /** + * @param Endpoint $endpoint + * @return string + * @author Soner Sayakci + */ + public function buildStreamUrl(Endpoint $endpoint): string + { + return $endpoint->getServer() . '/' . $endpoint->getStreamKey(); + } +} diff --git a/src/Component/Services/Vimeo.php b/src/Component/Services/Vimeo.php new file mode 100644 index 0000000..5c6f9bf --- /dev/null +++ b/src/Component/Services/Vimeo.php @@ -0,0 +1,52 @@ + + */ +class Vimeo extends AbstractService +{ + /** + * @return string + * @author Soner Sayakci + */ + public function getName(): string + { + return 'Vimeo'; + } + + /** + * @return bool + * @author Soner Sayakci + */ + public function hasServerList(): bool + { + return true; + } + + /** + * @return array + * @author Soner Sayakci + */ + public function getServerList(): array + { + return [ + 'Default' => 'rtmp://rtmp.cloud.vimeo.com/live' + ]; + } + + /** + * @param Endpoint $endpoint + * @return string + * @author Soner Sayakci + */ + public function buildStreamUrl(Endpoint $endpoint): string + { + return $endpoint->getServer() . '/' . $endpoint->getStreamKey(); + } +} diff --git a/src/Component/Services/Youtube.php b/src/Component/Services/Youtube.php index edb1f81..432c686 100644 --- a/src/Component/Services/Youtube.php +++ b/src/Component/Services/Youtube.php @@ -36,7 +36,8 @@ class Youtube extends AbstractService public function getServerList(): array { return [ - 'Live Streaming' => 'rtmp://a.rtmp.youtube.com/live2' + 'Live Streaming' => 'rtmp://a.rtmp.youtube.com/live2', + 'Live Streaming (backup)' => 'rtmp://b.rtmp.youtube.com/live2' ]; } @@ -49,4 +50,4 @@ class Youtube extends AbstractService { return $endpoint->getServer() . '/' . $endpoint->getStreamKey(); } -} \ No newline at end of file +}