2022-11-08 21:25:24 +01:00

95 lines
2.1 KiB
JavaScript

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/dlive.svg';
import FormInlineButton from '../../../misc/FormInlineButton';
const id = 'dlive';
const name = 'dlive';
const version = '1.0';
const stream_key_link = 'https://dlive.tv/s/dashboard';
const description = <Trans>Live-Streaming to dlive 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="dlive 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://stream.dlive.tv/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 };