diff --git a/CHANGELOG.md b/CHANGELOG.md index 9063096..dce987f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,14 @@ # Restreamer-UI +## v1.14.0 > v1.15.0 + +- Add EarthCam publication service +- Add other RTSP transport modes +- Fix wetter.com category + ## v1.13.0 > v1.14.0 -- Add wettercom service +- Add wetter.com service - Add option to select which channels will be displayed on the playersite ([#392](https://github.com/datarhei/restreamer/issues/392), [#800](https://github.com/datarhei/restreamer/issues/800)) - Mod updates public videojs >v8 - Fix erroneous filter setting diff --git a/src/views/Publication/Services/EarthCam.js b/src/views/Publication/Services/EarthCam.js new file mode 100644 index 0000000..76123f7 --- /dev/null +++ b/src/views/Publication/Services/EarthCam.js @@ -0,0 +1,102 @@ +import React from 'react'; + +import { Trans } from '@lingui/macro'; +import Grid from '@mui/material/Grid'; +import Link from '@mui/material/Link'; +import TextField from '@mui/material/TextField'; + +import Logo from './logos/earthcam.svg'; +import FormInlineButton from '../../../misc/FormInlineButton'; + +const id = 'earthcam'; +const name = 'EarthCam'; +const version = '1.0'; +const stream_key_link = 'https://www.earthcam.com/myearthcam/settings.php'; +const description = ( + + Transmit your Livestream to an EarthCam RTMP service.{' '} + + Here{' '} + + you can find more details about the settings. + +); +const image_copyright = Please get in touch with the operator of the service and check what happens.; +const author = { + creator: { + name: 'datarhei', + link: 'https://github.com/datarhei', + }, + maintainer: { + name: 'datarhei', + link: 'https://github.com/datarhei', + }, +}; +const category = 'platform'; +const requires = { + protocols: ['rtmp'], + formats: ['flv'], + codecs: { + audio: ['aac'], + video: ['h264'], + }, +}; + +function ServiceIcon(props) { + return EarthCam.com Logo; +} + +function init(settings) { + const initSettings = { + server_url: 'rtmp://video1.earthcam.com/myearthcam', + stream_key: '', + ...settings, + }; + + return initSettings; +} + +function Service({ settings = {}, skills = {}, metadata = {}, streams = [], onChange = function (output, settings) {} }) { + settings = init(settings); + + const handleChange = (what) => (event) => { + const value = event.target.value; + + settings[what] = value; + + const output = createOutput(settings); + + onChange([output], settings); + }; + + const createOutput = (settings) => { + const output = { + address: settings.server_url + '/' + settings.stream_key, + //options: ['-rtmp_playpath', settings.stream_key, '-f', 'flv'], + }; + + return output; + }; + + return ( + + + Stream key} + value={settings.stream_key} + onChange={handleChange('stream_key')} + /> + + + + GET + + + + ); +} + +export { id, name, version, stream_key_link, description, image_copyright, author, category, requires, ServiceIcon as icon, Service as component }; diff --git a/src/views/Publication/Services/index.js b/src/views/Publication/Services/index.js index a570522..1b09e8c 100644 --- a/src/views/Publication/Services/index.js +++ b/src/views/Publication/Services/index.js @@ -7,6 +7,7 @@ import * as DaCast from './DaCast'; import * as Dailymotion from './Dailymotion'; import * as DASH from './DASH'; import * as DLive from './DLive'; +import * as EarthCam from './EarthCam'; import * as Facebook from './Facebook'; import * as Framebuffer from './Framebuffer'; import * as HLS from './HLS'; @@ -95,6 +96,7 @@ registry.Register(PeerTube); registry.Register(MediaNetwork); registry.Register(Livespotting); registry.Register(Wettercom); +registry.Register(EarthCam); registry.Register(Azure); registry.Register(Brightcove); registry.Register(Akamai); diff --git a/src/views/Publication/Services/logos/earthcam.svg b/src/views/Publication/Services/logos/earthcam.svg new file mode 100644 index 0000000..8ff3e83 --- /dev/null +++ b/src/views/Publication/Services/logos/earthcam.svg @@ -0,0 +1,5 @@ + + + + +