Add dlive + trovo publication services
This commit is contained in:
parent
183717e98a
commit
3cfec164bd
@ -2,25 +2,20 @@ 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/bitmovin.svg';
|
||||
import Logo from './logos/dlive.svg';
|
||||
|
||||
const id = 'bitmovin';
|
||||
const name = 'Bitmovin';
|
||||
import FormInlineButton from '../../../misc/FormInlineButton';
|
||||
|
||||
const id = 'dlive';
|
||||
const name = 'dlive';
|
||||
const version = '1.0';
|
||||
const stream_key_link = '';
|
||||
const stream_key_link = 'https://dlive.tv/s/dashboard';
|
||||
const description = (
|
||||
<Trans>
|
||||
Transmit the main source to the Bitmovin cloud encoding service, a powerful tool for live streaming. More details about the settings can be founds{' '}
|
||||
<Link color="secondary" target="_blank" href="https://bitmovin.com/docs/encoding/tutorials/create-a-live-encoding-from-an-srt-stream">
|
||||
here
|
||||
</Link>
|
||||
.
|
||||
</Trans>
|
||||
<Trans>Live-Streaming to dlive Live RTMP Service.</Trans>
|
||||
);
|
||||
const image_copyright = <Trans>Please contact the operator of the service and check what happens.</Trans>;
|
||||
const image_copyright = '';
|
||||
const author = {
|
||||
creator: {
|
||||
name: 'datarhei',
|
||||
@ -42,14 +37,12 @@ const requires = {
|
||||
};
|
||||
|
||||
function ServiceIcon(props) {
|
||||
return <img src={Logo} alt="Bitmovin Logo" {...props} />;
|
||||
return <img src={Logo} alt="dlive Logo" {...props} />;
|
||||
}
|
||||
|
||||
function init(settings) {
|
||||
const initSettings = {
|
||||
protocol: 'srt://',
|
||||
address: '',
|
||||
port: ':2088',
|
||||
key: '',
|
||||
...settings,
|
||||
};
|
||||
|
||||
@ -62,7 +55,7 @@ function Service(props) {
|
||||
const handleChange = (what) => (event) => {
|
||||
const value = event.target.value;
|
||||
|
||||
settings.settings[what] = value;
|
||||
settings[what] = value;
|
||||
|
||||
const output = createOutput(settings);
|
||||
|
||||
@ -70,11 +63,9 @@ function Service(props) {
|
||||
};
|
||||
|
||||
const createOutput = (settings) => {
|
||||
const options = ['-strict', '-2', '-f', 'mpegts'];
|
||||
|
||||
const output = {
|
||||
address: settings.protocol + settings.ip + settings.port,
|
||||
options: options,
|
||||
address: 'rtmp://stream.dlive.tv/live/' + settings.key,
|
||||
options: ['-f', 'flv'],
|
||||
};
|
||||
|
||||
return output;
|
||||
@ -82,14 +73,13 @@ function Service(props) {
|
||||
|
||||
return (
|
||||
<Grid container spacing={2}>
|
||||
<Grid item xs={12} md={3}>
|
||||
<TextField variant="outlined" fullWidth label={<Trans>Protocol</Trans>} value={settings.protocol} readOnly disabled />
|
||||
</Grid>
|
||||
<Grid item xs={12} md={6}>
|
||||
<TextField variant="outlined" fullWidth label={<Trans>IP address</Trans>} value={settings.ip} onChange={handleChange('ip')} />
|
||||
<Grid item xs={12} md={9}>
|
||||
<TextField variant="outlined" fullWidth label={<Trans>Stream key</Trans>} value={settings.key} onChange={handleChange('key')} />
|
||||
</Grid>
|
||||
<Grid item xs={12} md={3}>
|
||||
<TextField variant="outlined" fullWidth label={<Trans>Port</Trans>} value={settings.port} readOnly disabled />
|
||||
<FormInlineButton target="blank" href={stream_key_link} component="a">
|
||||
<Trans>GET</Trans>
|
||||
</FormInlineButton>
|
||||
</Grid>
|
||||
</Grid>
|
||||
);
|
||||
96
src/views/Publication/Services/Trovo.js
Normal file
96
src/views/Publication/Services/Trovo.js
Normal file
@ -0,0 +1,96 @@
|
||||
import React from 'react';
|
||||
|
||||
import { Trans } from '@lingui/macro';
|
||||
import Grid from '@mui/material/Grid';
|
||||
import TextField from '@mui/material/TextField';
|
||||
|
||||
import Logo from './logos/trovo.svg';
|
||||
|
||||
import FormInlineButton from '../../../misc/FormInlineButton';
|
||||
|
||||
const id = 'trovo';
|
||||
const name = 'Trovo';
|
||||
const version = '1.0';
|
||||
const stream_key_link = 'https://studio.trovo.live/mychannel/stream';
|
||||
const description = (
|
||||
<Trans>Live-Streaming to Trovo Live RTMP Service.</Trans>
|
||||
);
|
||||
const image_copyright = '';
|
||||
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', 'mp3'],
|
||||
video: ['h264'],
|
||||
},
|
||||
};
|
||||
|
||||
function ServiceIcon(props) {
|
||||
return <img src={Logo} alt="Trovo Logo" {...props} />;
|
||||
}
|
||||
|
||||
function init(settings) {
|
||||
const initSettings = {
|
||||
key: '',
|
||||
...settings,
|
||||
};
|
||||
|
||||
return initSettings;
|
||||
}
|
||||
|
||||
function Service(props) {
|
||||
const settings = init(props.settings);
|
||||
|
||||
const handleChange = (what) => (event) => {
|
||||
const value = event.target.value;
|
||||
|
||||
settings[what] = value;
|
||||
|
||||
const output = createOutput(settings);
|
||||
|
||||
props.onChange([output], settings);
|
||||
};
|
||||
|
||||
const createOutput = (settings) => {
|
||||
const output = {
|
||||
address: 'rtmp://livepush.trovo.live/live/' + settings.key,
|
||||
options: ['-f', 'flv'],
|
||||
};
|
||||
|
||||
return output;
|
||||
};
|
||||
|
||||
return (
|
||||
<Grid container spacing={2}>
|
||||
<Grid item xs={12} md={9}>
|
||||
<TextField variant="outlined" fullWidth label={<Trans>Stream key</Trans>} value={settings.key} onChange={handleChange('key')} />
|
||||
</Grid>
|
||||
<Grid item xs={12} md={3}>
|
||||
<FormInlineButton target="blank" href={stream_key_link} component="a">
|
||||
<Trans>GET</Trans>
|
||||
</FormInlineButton>
|
||||
</Grid>
|
||||
</Grid>
|
||||
);
|
||||
}
|
||||
|
||||
Service.defaultProps = {
|
||||
settings: {},
|
||||
skills: {},
|
||||
metadata: {},
|
||||
streams: [],
|
||||
onChange: function (output, settings) {},
|
||||
};
|
||||
|
||||
export { id, name, version, stream_key_link, description, image_copyright, author, category, requires, ServiceIcon as icon, Service as component };
|
||||
@ -5,6 +5,7 @@ import * as CDN77 from './CDN77';
|
||||
import * as Core from './Core';
|
||||
import * as DaCast from './DaCast';
|
||||
import * as DASH from './DASH';
|
||||
import * as DLive from './DLive';
|
||||
import * as Facebook from './Facebook';
|
||||
import * as Framebuffer from './Framebuffer';
|
||||
import * as HLS from './HLS';
|
||||
@ -20,6 +21,7 @@ import * as Restream from './Restream';
|
||||
import * as RTMP from './RTMP';
|
||||
import * as RTSP from './RTSP';
|
||||
import * as SRT from './SRT';
|
||||
import * as Trovo from './Trovo';
|
||||
import * as Telegram from './Telegram';
|
||||
import * as Twitch from './Twitch';
|
||||
import * as Twitter from './Twitter';
|
||||
@ -73,6 +75,8 @@ registry.Register(Vimeo);
|
||||
registry.Register(Restream);
|
||||
registry.Register(Telegram);
|
||||
registry.Register(Linkedin);
|
||||
registry.Register(DLive);
|
||||
registry.Register(Trovo);
|
||||
registry.Register(Livespotting);
|
||||
registry.Register(Azure);
|
||||
registry.Register(Brightcove);
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -0.549 24 24">
|
||||
<path fill="#1EABE2" d="M8.12 0v5.272l8.175 5.708c.327.229.327.713 0 .941L8.12 17.629v5.273l15.581-10.878c.398-.278.398-.868 0-1.146L8.12 0z"/>
|
||||
<path fill="#1EABE2" d="M3.529 3.833v4.049l4.44 3.1c.326.228.326.711 0 .938l-4.44 3.1v4.048l10.09-7.043c.398-.278.398-.868 0-1.146L3.529 3.833z"/>
|
||||
<path fill="#1EABE2" d="M0 7.183v2.55l1.788 1.248c.327.229.327.712 0 .941L0 13.17v2.55l5.296-3.698c.396-.277.396-.864 0-1.141L0 7.183z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 508 B |
1
src/views/Publication/Services/logos/dlive.svg
Normal file
1
src/views/Publication/Services/logos/dlive.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" baseProfile="basic" viewBox="0 0 158.958 158.995"><path fill="#ffd300" d="M69.887.557c14.979-1.804 30.469.679 44.049 7.299 15.998 7.638 29.259 20.835 37.003 36.814 7.915 16.083 10.037 34.924 6.068 52.408-3.416 15.192-11.436 29.324-22.767 40.039-14.003 13.411-33.079 21.388-52.472 21.833-13.644.467-27.393-2.758-39.444-9.166-16.338-8.572-29.451-23.043-36.411-40.146C-.77 93.472-1.81 75.053 2.901 58.207c4.35-15.893 13.813-30.278 26.628-40.59C41.03 8.301 55.204 2.297 69.887.557"/><path fill="#ffd300" d="M46.866 42.93c-3.926 3.882-6.175 9.251-6.515 14.725-3.458-3.989-7.829-7.002-12.285-9.76-1.422 4.159-2.971 8.296-5.241 12.073 5.41 1.231 11.225 1.591 16.211 4.201-5.22 1.953-10.715 2.929-16.19 3.862 2.187 3.797 3.84 7.893 5.178 12.073 4.541-2.61 8.827-5.792 12.391-9.675v30.47c0 3.373.828 6.747 2.334 9.759 3.565 7.193 11.224 12.158 19.287 12.286 14.09.084 28.2.02 42.288.042 5.814.084 11.648-2.122 15.829-6.196 4.329-4.053 6.854-9.909 6.896-15.829v-42.33c0-4.859-1.633-9.718-4.625-13.537-3.989-5.241-10.417-8.572-16.995-8.658-14.28 0-28.54.023-42.819 0-5.878-.127-11.65 2.334-15.744 6.494"/><path fill="#ffd300" d="M57.177 52.859c1.379-.339 2.8-.593 4.243-.614 14.662 0 29.324.021 43.986-.022 3.776.022 7.66 1.167 10.482 3.776 3.161 2.737 4.902 6.918 4.837 11.098-.042 4.519.042 9.059-.042 13.58-.212 5.388-3.776 10.439-8.741 12.519-6.451 2.567-13.877.064-19.203-3.926-2.166-2.058-4.499-4.243-7.575-4.688-3.395-.679-6.662 1.146-8.975 3.479-4.245 3.989-10.037 6.514-15.914 6.195-5.645-.063-10.926-3.988-12.837-9.271-1.421-3.735-.743-7.809-.912-11.691.148-3.755-.467-7.639.785-11.246 1.527-4.456 5.347-8.021 9.866-9.189"/><path fill="#ffd300" d="M62.248 60.626c-1.612.827-1.167 3.479.637 3.733 4.583.489 9.187 1.04 13.77 1.359 2.122-.106 2.377-3.502.298-3.905-3.841-.53-7.703-.764-11.543-1.231-1.039-.041-2.164-.36-3.162.044m37.833.126c-3.353.425-6.748.552-10.079 1.103-1.91.722-1.336 3.968.744 3.841 4.582-.36 9.143-.869 13.706-1.358 1.804-.297 2.037-3.246.297-3.818-1.529-.255-3.099.127-4.668.232m-31.658 6.663c-1.868.446-3.459 1.868-4.18 3.628-1.465 3.374.913 7.576 4.52 8.127 3.521.764 7.172-2.292 7.065-5.898.128-3.735-3.798-6.833-7.405-5.857m26.969.19c-1.846.659-3.332 2.292-3.798 4.203-.955 3.458 1.76 7.298 5.368 7.447 3.565.382 6.874-2.971 6.429-6.515-.192-3.798-4.477-6.513-7.999-5.135"/><path d="M46.866 42.93c4.095-4.16 9.866-6.621 15.701-6.557 14.28.021 28.539 0 42.819 0 6.599.105 13.006 3.438 16.996 8.657 2.992 3.841 4.625 8.678 4.625 13.537-.021 14.11 0 28.22 0 42.331-.021 5.919-2.567 11.776-6.896 15.828-4.18 4.073-10.016 6.28-15.829 6.196-14.11-.022-28.199.041-42.288-.044-8.042-.126-15.722-5.091-19.288-12.285-1.505-3.012-2.334-6.386-2.334-9.76V70.364c-3.542 3.883-7.829 7.066-12.39 9.676-1.337-4.18-2.991-8.255-5.178-12.074 5.475-.934 10.97-1.91 16.19-3.861-4.986-2.61-10.801-2.97-16.211-4.201 2.271-3.777 3.819-7.915 5.241-12.073 4.456 2.737 8.848 5.771 12.285 9.76.382-5.432 2.631-10.8 6.557-14.661"/><path fill="#ffd300" d="M57.177 52.859c-4.541 1.188-8.36 4.732-9.867 9.167-1.273 3.628-.637 7.511-.785 11.245.148 3.904-.509 7.957.912 11.692 1.89 5.282 7.173 9.208 12.837 9.272 5.877.338 11.69-2.187 15.914-6.197 2.313-2.333 5.58-4.158 8.975-3.479 3.076.445 5.41 2.63 7.575 4.688 5.325 3.989 12.752 6.472 19.203 3.925 4.986-2.058 8.529-7.109 8.741-12.519.084-4.52 0-9.061.042-13.579.065-4.159-1.676-8.34-4.837-11.098-2.822-2.609-6.706-3.755-10.482-3.776-14.662.021-29.324 0-43.986.021-1.419.045-2.841.299-4.242.638"/><path d="M62.248 60.626c.998-.404 2.123-.106 3.162-.064 3.84.467 7.724.701 11.543 1.231 2.1.402 1.824 3.82-.298 3.904-4.604-.297-9.188-.869-13.77-1.358-1.804-.234-2.249-2.886-.637-3.713m37.833.126c1.549-.105 3.14-.488 4.688-.233 1.74.572 1.507 3.521-.296 3.818-4.562.489-9.123 1.019-13.707 1.358-2.079.106-2.652-3.119-.744-3.841 3.332-.55 6.727-.677 10.059-1.102m-31.658 6.663c3.607-.976 7.532 2.102 7.404 5.857.107 3.606-3.544 6.662-7.065 5.898-3.607-.53-5.984-4.753-4.52-8.127.722-1.761 2.314-3.182 4.181-3.628m26.969.19c3.522-1.378 7.808 1.316 7.999 5.114.424 3.543-2.864 6.918-6.429 6.514-3.608-.147-6.323-3.988-5.368-7.447.466-1.888 1.951-3.501 3.798-4.181"/></svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
1
src/views/Publication/Services/logos/trovo.svg
Normal file
1
src/views/Publication/Services/logos/trovo.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" baseProfile="basic" viewBox="0 0 117.643 116.249"><path fill="#32c27c" d="M104.629 82.328c-2.023-8.102-8.09-13.51-16.636-13.445-8.366.064-13.01 5.381-13.635 11.275-.46 4.346 1.199 7.835 3.606 9.262 4.426 2.624 7.533-1.846 5.809-3.504-1.11-1.068-1.625-1.972-1.383-3.588s1.477-3.233 4.39-3.233 5.368 2.082 5.891 6.39c.617 5.083-2.727 10.587-8.626 11.834-7.469 1.579-15.003-2.407-17.673-8.826s-1.945-16.427 4.441-22.548c5.059-4.849 11.607-6.635 17.18-6.635l18.645.818c1.38.061 2.612-.858 2.948-2.198l7.97-32.513c.058-.231.087-.469.087-.708 0-1.606-1.117-2.908-2.723-2.908H80.83c-.11 0-.22-.012-.328-.037-.782-.181-1.27-.962-1.089-1.744L83.22 3.562c.05-.215.075-.435.075-.655C83.295 1.302 81.994 0 80.388 0h-35.28c-1.971 0-3.698 1.322-4.211 3.226l-3.892 16.427c-.342 1.269-1.494 2.15-2.808 2.15H11.6c-2.041 0-3.808 1.415-4.256 3.405L.071 57.547c-.047.21-.071.424-.071.639 0 1.606 1.302 2.908 2.908 2.908h23.167c.143 0 .284.014.424.042 1.182.234 1.949 1.382 1.715 2.563-.687 3.469-1.149 6.899-1.385 10.29-.702 10.081 1.942 21.12 9.898 29.739 13.539 14.667 38.532 15.518 53.319 7.37 11.89-6.553 17.119-18.618 14.583-28.77"/></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
Loading…
x
Reference in New Issue
Block a user