mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-02 13:43:56 +08:00
💋 Sync 2026-04-30 20:35:45
This commit is contained in:
1 parent
70052617ed
commit
a2af50b5c1
21 files changed
+1273
-151
No files matched your search
@@ -0,0 +1,12 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Copyright (C) 2026 ImmortalWrt.org
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=LuCI support for rtp2httpd
|
||||
LUCI_DEPENDS:=+rtp2httpd
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
@@ -0,0 +1,160 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
'use strict';
|
||||
'require view';
|
||||
'require form';
|
||||
'require tools.widgets as widgets';
|
||||
|
||||
return view.extend({
|
||||
render() {
|
||||
let m, s, o;
|
||||
|
||||
m = new form.Map('rtp2httpd', _('rtp2httpd'),
|
||||
_('Multicast RTP/RTSP to Unicast HTTP stream converter.'));
|
||||
|
||||
s = m.section(form.TypedSection, 'instance');
|
||||
s.anonymous = true;
|
||||
s.addremove = true;
|
||||
s.addbtntitle = _('Add instance');
|
||||
|
||||
s.tab('general', _('General settings'));
|
||||
|
||||
o = s.taboption('general', form.Flag, 'enabled', _('Enable'));
|
||||
|
||||
o = s.taboption('general', form.DynamicList, 'listen', _('Bind address'));
|
||||
o.datatype = 'ipaddrport(1)';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('general', form.ListValue, 'verbose', _('Log level'),
|
||||
_('syslog severity level.'));
|
||||
o.value('0', _('Fatal'));
|
||||
o.value('1', _('Error'));
|
||||
o.value('2', _('Warn'));
|
||||
o.value('3', _('Info'));
|
||||
o.value('4', _('Debug'));
|
||||
o.default = '1';
|
||||
|
||||
o = s.taboption('general', widgets.DeviceSelect, 'upstream_interface', _('Upstream interface'),
|
||||
_('Default interface for all upstream traffic.'));
|
||||
o.noaliases = true;
|
||||
o.nocreate = true;
|
||||
o.optional = true;
|
||||
|
||||
o = s.taboption('general', form.Value, 'mcast_rejoin_interval', _('Multicast rejoin interval'),
|
||||
_('Periodic multicast rejoin interval in seconds.'));
|
||||
o.datatype = 'and(uinteger, range(0,86400))';
|
||||
o.placeholder = '0';
|
||||
|
||||
o = s.taboption('general', form.Value, 'maxclients', _('Max clients'),
|
||||
_('Serve max N requests simultaneously.'));
|
||||
o.datatype = 'and(uinteger, range(1,5000))';
|
||||
o.placeholder = '5';
|
||||
|
||||
o = s.taboption('general', form.Value, 'workers', _('Worker processes'),
|
||||
_('Number of worker processes with <code>SO_REUSEPORT</code>.'));
|
||||
o.datatype = 'and(uinteger, range(1,64))';
|
||||
o.placeholder = '1';
|
||||
|
||||
o = s.taboption('general', form.Flag, 'zerocopy_on_send', _('Zero-copy on send'),
|
||||
_('Enable zero-copy send with <code>MSG_ZEROCOPY</code> for better performance.'));
|
||||
|
||||
s.tab('web', _('Web settings'));
|
||||
|
||||
o = s.taboption('web', form.Value, 'hostname', _('Hostname'),
|
||||
_('HTTP host header will be checked and must match this value to allow access when configured.'));
|
||||
o.datatype = 'host';
|
||||
|
||||
o = s.taboption('web', form.Value, 'r2h_token', _('R2H token'),
|
||||
_('Authentication token for HTTP requests.'));
|
||||
|
||||
o = s.taboption('web', form.Value, 'cors_allow_origin', _('CORS allowed origin'),
|
||||
_('Set <code>Access-Control-Allow-Origin</code> header to enable CORS.'));
|
||||
|
||||
o = s.taboption('web', form.Flag, 'xff', _('Accept X-Forwarded-For header'),
|
||||
_('Use <code>X-Forwarded-For</code> header as client address, also accepts <code>X-Forwarded-Host</code> / <code>X-Forwarded-Proto</code> headers as the base URL for M3U playlist conversion.'));
|
||||
|
||||
o = s.taboption('web', form.Value, 'external_m3u', _('External M3U playlist URL'),
|
||||
_('External M3U playlist URL (file://, http://, https:// supported).'));
|
||||
|
||||
o = s.taboption('web', form.Value, 'external_m3u_update_interval', _('External M3U playlist update interval'),
|
||||
_('External M3U playlist update interval in seconds.'));
|
||||
o.datatype = 'uinteger';
|
||||
o.placeholder = '7200';
|
||||
o.depends({ 'external_m3u': '', '!reverse': true });
|
||||
|
||||
o = s.taboption('web', form.Value, 'player_page_path', _('Player page path'),
|
||||
_('HTTP path for player UI.'));
|
||||
o.placeholder = '/player';
|
||||
|
||||
o = s.taboption('web', form.Value, 'status_page_path', _('Status page path'),
|
||||
_('HTTP path for status UI.'));
|
||||
o.placeholder = '/status';
|
||||
|
||||
s.tab('advanced', _('Advanced settings'));
|
||||
|
||||
o = s.taboption('advanced', form.Flag, 'noudpxy', _('Disable udpxy compatibility'));
|
||||
|
||||
o = s.taboption('advanced', widgets.DeviceSelect, 'upstream_interface_fcc', _('Upstream FCC interface'),
|
||||
_('Interface for FCC unicast traffic (overrides upstream interface).'));
|
||||
o.noaliases = true;
|
||||
o.nocreate = true;
|
||||
o.optional = true;
|
||||
|
||||
o = s.taboption('advanced', widgets.DeviceSelect, 'upstream_interface_http', _('Upstream HTTP interface'),
|
||||
_('Interface for HTTP proxy upstream traffic (overrides upstream interface).'));
|
||||
o.noaliases = true;
|
||||
o.nocreate = true;
|
||||
o.optional = true;
|
||||
|
||||
o = s.taboption('advanced', widgets.DeviceSelect, 'upstream_interface_multicast', _('Upstream multicast interface'),
|
||||
_('Interface for multicast traffic (overrides upstream interface).'));
|
||||
o.noaliases = true;
|
||||
o.nocreate = true;
|
||||
o.optional = true;
|
||||
|
||||
o = s.taboption('advanced', widgets.DeviceSelect, 'upstream_interface_rtsp', _('Upstream RTSP interface'),
|
||||
_('Interface for RTSP unicast traffic (overrides upstream interface).'));
|
||||
o.noaliases = true;
|
||||
o.nocreate = true;
|
||||
o.optional = true;
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'fcc_listen_port_range', _('FCC listen port range'),
|
||||
_('Restrict FCC UDP listen sockets to specific ports.'));
|
||||
o.datatype = 'or(port,portrange)';
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'http_proxy_user_agent', _('HTTP proxy User-Agent'),
|
||||
_('Override the User-Agent header sent to upstream HTTP proxy requests.'));
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'rtsp_stun_server', _('RTSP STUN server'),
|
||||
_('STUN server for RTSP NAT traversal.'));
|
||||
o.datatype = 'or(host,hostport)';
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'rtsp_user_agent', _('RTSP User-Agent'),
|
||||
_('User-Agent header for upstream RTSP requests.'));
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'buffer_pool_max_size', _('Buffer pool max size'),
|
||||
_('Maximum number of buffers in zero-copy pool.'));
|
||||
o.datatype = 'and(uinteger, range(1024,1048576))';
|
||||
o.placeholder = '16384';
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'udp_rcvbuf_size', _('UDP receive buffer size'),
|
||||
_('UDP socket receive buffer size (in bytes) for multicast/FCC/RTSP.'));
|
||||
o.datatype = 'and(uinteger, range(65536,16777216))';
|
||||
o.placeholder = '524288';
|
||||
|
||||
o = s.taboption('advanced', form.Flag, 'video_snapshot', _('Video snapshot'),
|
||||
_('Enable video snapshot feature. Clients can request snapshots with <code>snapshot=1</code> query parameter.'));
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'ffmpeg_path', _('FFmpeg path'),
|
||||
_('Path to FFmpeg executable.'));
|
||||
o.placeholder = 'ffmpeg';
|
||||
o.depends('video_snapshot', '1');
|
||||
|
||||
o = s.taboption('advanced', form.Value, 'ffmpeg_args', _('FFmpeg arguments'),
|
||||
_('Additional FFmpeg arguments for snapshot generation.'));
|
||||
o.placeholder = '-hwaccel none';
|
||||
o.depends('video_snapshot', '1');
|
||||
|
||||
return m.render();
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,288 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:73
|
||||
msgid "Accept X-Forwarded-For header"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:18
|
||||
msgid "Add instance"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:154
|
||||
msgid "Additional FFmpeg arguments for snapshot generation."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:93
|
||||
msgid "Advanced settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:68
|
||||
msgid "Authentication token for HTTP requests."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:24
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:135
|
||||
msgid "Buffer pool max size"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:70
|
||||
msgid "CORS allowed origin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:34
|
||||
msgid "Debug"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:38
|
||||
msgid "Default interface for all upstream traffic."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:95
|
||||
msgid "Disable udpxy compatibility"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:22
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:146
|
||||
msgid ""
|
||||
"Enable video snapshot feature. Clients can request snapshots with "
|
||||
"<code>snapshot=1</code> query parameter."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:59
|
||||
msgid ""
|
||||
"Enable zero-copy send with <code>MSG_ZEROCOPY</code> for better performance."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:31
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:76
|
||||
msgid "External M3U playlist URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:77
|
||||
msgid "External M3U playlist URL (file://, http://, https:// supported)."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:79
|
||||
msgid "External M3U playlist update interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:80
|
||||
msgid "External M3U playlist update interval in seconds."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:121
|
||||
msgid "FCC listen port range"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:153
|
||||
msgid "FFmpeg arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:148
|
||||
msgid "FFmpeg path"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:30
|
||||
msgid "Fatal"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:20
|
||||
msgid "General settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/root/usr/share/rpcd/acl.d/luci-app-rtp2httpd.json:3
|
||||
msgid "Grant UCI access for luci-app-rtp2httpd"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:64
|
||||
msgid ""
|
||||
"HTTP host header will be checked and must match this value to allow access "
|
||||
"when configured."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:86
|
||||
msgid "HTTP path for player UI."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:90
|
||||
msgid "HTTP path for status UI."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:125
|
||||
msgid "HTTP proxy User-Agent"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:63
|
||||
msgid "Hostname"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:33
|
||||
msgid "Info"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:98
|
||||
msgid "Interface for FCC unicast traffic (overrides upstream interface)."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:104
|
||||
msgid ""
|
||||
"Interface for HTTP proxy upstream traffic (overrides upstream interface)."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:116
|
||||
msgid "Interface for RTSP unicast traffic (overrides upstream interface)."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:110
|
||||
msgid "Interface for multicast traffic (overrides upstream interface)."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:28
|
||||
msgid "Log level"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:48
|
||||
msgid "Max clients"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:136
|
||||
msgid "Maximum number of buffers in zero-copy pool."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:13
|
||||
msgid "Multicast RTP/RTSP to Unicast HTTP stream converter."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:43
|
||||
msgid "Multicast rejoin interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:54
|
||||
msgid "Number of worker processes with <code>SO_REUSEPORT</code>."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:126
|
||||
msgid "Override the User-Agent header sent to upstream HTTP proxy requests."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:149
|
||||
msgid "Path to FFmpeg executable."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:44
|
||||
msgid "Periodic multicast rejoin interval in seconds."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:85
|
||||
msgid "Player page path"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:67
|
||||
msgid "R2H token"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:128
|
||||
msgid "RTSP STUN server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:132
|
||||
msgid "RTSP User-Agent"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:122
|
||||
msgid "Restrict FCC UDP listen sockets to specific ports."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:129
|
||||
msgid "STUN server for RTSP NAT traversal."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:49
|
||||
msgid "Serve max N requests simultaneously."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:71
|
||||
msgid "Set <code>Access-Control-Allow-Origin</code> header to enable CORS."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:89
|
||||
msgid "Status page path"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:140
|
||||
msgid "UDP receive buffer size"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:141
|
||||
msgid "UDP socket receive buffer size (in bytes) for multicast/FCC/RTSP."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:97
|
||||
msgid "Upstream FCC interface"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:103
|
||||
msgid "Upstream HTTP interface"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:115
|
||||
msgid "Upstream RTSP interface"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:37
|
||||
msgid "Upstream interface"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:109
|
||||
msgid "Upstream multicast interface"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:74
|
||||
msgid ""
|
||||
"Use <code>X-Forwarded-For</code> header as client address, also accepts "
|
||||
"<code>X-Forwarded-Host</code> / <code>X-Forwarded-Proto</code> headers as "
|
||||
"the base URL for M3U playlist conversion."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:133
|
||||
msgid "User-Agent header for upstream RTSP requests."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:145
|
||||
msgid "Video snapshot"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:32
|
||||
msgid "Warn"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:61
|
||||
msgid "Web settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:53
|
||||
msgid "Worker processes"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:58
|
||||
msgid "Zero-copy on send"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:12
|
||||
#: applications/luci-app-rtp2httpd/root/usr/share/luci/menu.d/luci-app-rtp2httpd.json:3
|
||||
msgid "rtp2httpd"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:29
|
||||
msgid "syslog severity level."
|
||||
msgstr ""
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
zh_Hans
|
||||
@@ -0,0 +1,299 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: zh-Hans\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:73
|
||||
msgid "Accept X-Forwarded-For header"
|
||||
msgstr "接受 X-Forwarded-For 头"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:18
|
||||
msgid "Add instance"
|
||||
msgstr "添加实例"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:154
|
||||
msgid "Additional FFmpeg arguments for snapshot generation."
|
||||
msgstr "用于快照生成的额外 FFmpeg 参数。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:93
|
||||
msgid "Advanced settings"
|
||||
msgstr "高级设置"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:68
|
||||
msgid "Authentication token for HTTP requests."
|
||||
msgstr "HTTP 请求的认证令牌。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:24
|
||||
msgid "Bind address"
|
||||
msgstr "绑定地址"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:135
|
||||
msgid "Buffer pool max size"
|
||||
msgstr "缓冲池最大容量"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:70
|
||||
msgid "CORS allowed origin"
|
||||
msgstr "CORS 允许来源"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:34
|
||||
msgid "Debug"
|
||||
msgstr "调试"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:38
|
||||
msgid "Default interface for all upstream traffic."
|
||||
msgstr "所有上游流量的默认接口。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:95
|
||||
msgid "Disable udpxy compatibility"
|
||||
msgstr "禁用 udpxy 兼容性"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:22
|
||||
msgid "Enable"
|
||||
msgstr "启用"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:146
|
||||
msgid ""
|
||||
"Enable video snapshot feature. Clients can request snapshots with "
|
||||
"<code>snapshot=1</code> query parameter."
|
||||
msgstr ""
|
||||
"启用视频快照功能。客户端可以通过 <code>snapshot=1</code> 查询参数请求快照。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:59
|
||||
msgid ""
|
||||
"Enable zero-copy send with <code>MSG_ZEROCOPY</code> for better performance."
|
||||
msgstr "启用 <code>MSG_ZEROCOPY</code> 零拷贝发送以提高性能。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:31
|
||||
msgid "Error"
|
||||
msgstr "错误"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:76
|
||||
msgid "External M3U playlist URL"
|
||||
msgstr "外部 M3U 播放列表 URL"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:77
|
||||
msgid "External M3U playlist URL (file://, http://, https:// supported)."
|
||||
msgstr "外部 M3U 播放列表 URL(支持 file://、http://、https://)。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:79
|
||||
msgid "External M3U playlist update interval"
|
||||
msgstr "外部 M3U 播放列表更新间隔"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:80
|
||||
msgid "External M3U playlist update interval in seconds."
|
||||
msgstr "外部 M3U 播放列表更新间隔(秒)。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:121
|
||||
msgid "FCC listen port range"
|
||||
msgstr "FCC 监听端口范围"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:153
|
||||
msgid "FFmpeg arguments"
|
||||
msgstr "FFmpeg 参数"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:148
|
||||
msgid "FFmpeg path"
|
||||
msgstr "FFmpeg 路径"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:30
|
||||
msgid "Fatal"
|
||||
msgstr "致命"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:20
|
||||
msgid "General settings"
|
||||
msgstr "常规设置"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/root/usr/share/rpcd/acl.d/luci-app-rtp2httpd.json:3
|
||||
msgid "Grant UCI access for luci-app-rtp2httpd"
|
||||
msgstr "授予 luci-app-rtp2httpd 访问 UCI 配置的权限"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:64
|
||||
msgid ""
|
||||
"HTTP host header will be checked and must match this value to allow access "
|
||||
"when configured."
|
||||
msgstr "配置后将检查 HTTP Host 头并且必须匹配此值才允许访问。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:86
|
||||
msgid "HTTP path for player UI."
|
||||
msgstr "播放器页面 HTTP 路径。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:90
|
||||
msgid "HTTP path for status UI."
|
||||
msgstr "状态页面 HTTP 路径。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:125
|
||||
msgid "HTTP proxy User-Agent"
|
||||
msgstr "HTTP 代理 User-Agent"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:63
|
||||
msgid "Hostname"
|
||||
msgstr "主机名"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:33
|
||||
msgid "Info"
|
||||
msgstr "信息"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:98
|
||||
msgid "Interface for FCC unicast traffic (overrides upstream interface)."
|
||||
msgstr "用于 FCC 单播流量的接口(覆盖默认上游接口)。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:104
|
||||
msgid ""
|
||||
"Interface for HTTP proxy upstream traffic (overrides upstream interface)."
|
||||
msgstr "用于 HTTP 代理上游流量的接口(覆盖默认上游接口)。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:116
|
||||
msgid "Interface for RTSP unicast traffic (overrides upstream interface)."
|
||||
msgstr "用于 RTSP 单播流量的接口(覆盖默认上游接口)。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:110
|
||||
msgid "Interface for multicast traffic (overrides upstream interface)."
|
||||
msgstr "用于组播流量的接口(覆盖默认上游接口)。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:28
|
||||
msgid "Log level"
|
||||
msgstr "日志级别"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:48
|
||||
msgid "Max clients"
|
||||
msgstr "最大客户端数"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:136
|
||||
msgid "Maximum number of buffers in zero-copy pool."
|
||||
msgstr "零拷贝池中缓冲区的最大数量。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:13
|
||||
msgid "Multicast RTP/RTSP to Unicast HTTP stream converter."
|
||||
msgstr "组播 RTP/RTSP 到单播 HTTP 流转换器。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:43
|
||||
msgid "Multicast rejoin interval"
|
||||
msgstr "组播重新加入间隔"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:54
|
||||
msgid "Number of worker processes with <code>SO_REUSEPORT</code>."
|
||||
msgstr "使用 <code>SO_REUSEPORT</code> 端口复用的工作进程数量。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:126
|
||||
msgid "Override the User-Agent header sent to upstream HTTP proxy requests."
|
||||
msgstr "覆盖发送到上游 HTTP 代理请求的 User-Agent 头。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:149
|
||||
msgid "Path to FFmpeg executable."
|
||||
msgstr "FFmpeg 可执行文件路径。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:44
|
||||
msgid "Periodic multicast rejoin interval in seconds."
|
||||
msgstr "周期性组播重新加入间隔(秒)。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:85
|
||||
msgid "Player page path"
|
||||
msgstr "播放器页面路径"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:67
|
||||
msgid "R2H token"
|
||||
msgstr "HTTP 请求认证令牌"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:128
|
||||
msgid "RTSP STUN server"
|
||||
msgstr "RTSP STUN 服务器"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:132
|
||||
msgid "RTSP User-Agent"
|
||||
msgstr "RTSP User-Agent"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:122
|
||||
msgid "Restrict FCC UDP listen sockets to specific ports."
|
||||
msgstr "限制 FCC UDP 监听套接字到特定端口。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:129
|
||||
msgid "STUN server for RTSP NAT traversal."
|
||||
msgstr "用于 RTSP NAT 穿透的 STUN 服务器。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:49
|
||||
msgid "Serve max N requests simultaneously."
|
||||
msgstr "最多同时处理 N 个请求。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:71
|
||||
msgid "Set <code>Access-Control-Allow-Origin</code> header to enable CORS."
|
||||
msgstr "设置 <code>Access-Control-Allow-Origin</code> 头以启用 CORS。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:89
|
||||
msgid "Status page path"
|
||||
msgstr "状态页面路径"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:140
|
||||
msgid "UDP receive buffer size"
|
||||
msgstr "UDP 接收缓冲区大小"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:141
|
||||
msgid "UDP socket receive buffer size (in bytes) for multicast/FCC/RTSP."
|
||||
msgstr "用于组播/FCC/RTSP 的 UDP 套接字接收缓冲区大小(字节)。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:97
|
||||
msgid "Upstream FCC interface"
|
||||
msgstr "上游 FCC 接口"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:103
|
||||
msgid "Upstream HTTP interface"
|
||||
msgstr "上游 HTTP 接口"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:115
|
||||
msgid "Upstream RTSP interface"
|
||||
msgstr "上游 RTSP 接口"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:37
|
||||
msgid "Upstream interface"
|
||||
msgstr "上游接口"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:109
|
||||
msgid "Upstream multicast interface"
|
||||
msgstr "上游组播接口"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:74
|
||||
msgid ""
|
||||
"Use <code>X-Forwarded-For</code> header as client address, also accepts "
|
||||
"<code>X-Forwarded-Host</code> / <code>X-Forwarded-Proto</code> headers as "
|
||||
"the base URL for M3U playlist conversion."
|
||||
msgstr ""
|
||||
"使用 <code>X-Forwarded-For</code> 头作为客户端地址,并接受 <code>X-Forwarded-"
|
||||
"Host</code> / <code>X-Forwarded-Proto</code> 头作为 M3U 播放列表中的地址前"
|
||||
"缀。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:133
|
||||
msgid "User-Agent header for upstream RTSP requests."
|
||||
msgstr "用于上游 RTSP 请求的 User-Agent 头。"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:145
|
||||
msgid "Video snapshot"
|
||||
msgstr "视频快照"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:32
|
||||
msgid "Warn"
|
||||
msgstr "警告"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:61
|
||||
msgid "Web settings"
|
||||
msgstr "Web 设置"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:53
|
||||
msgid "Worker processes"
|
||||
msgstr "工作进程"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:58
|
||||
msgid "Zero-copy on send"
|
||||
msgstr "零拷贝发送"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:12
|
||||
#: applications/luci-app-rtp2httpd/root/usr/share/luci/menu.d/luci-app-rtp2httpd.json:3
|
||||
msgid "rtp2httpd"
|
||||
msgstr "rtp2httpd"
|
||||
|
||||
#: applications/luci-app-rtp2httpd/htdocs/luci-static/resources/view/rtp2httpd.js:29
|
||||
msgid "syslog severity level."
|
||||
msgstr "系统日志级别。"
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"admin/services/rtp2httpd": {
|
||||
"title": "rtp2httpd",
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "rtp2httpd"
|
||||
},
|
||||
"depends": {
|
||||
"acl": [ "luci-app-rtp2httpd" ],
|
||||
"fs": { "/etc/config/rtp2httpd": "file" }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"luci-app-rtp2httpd": {
|
||||
"description": "Grant UCI access for luci-app-rtp2httpd",
|
||||
"read": {
|
||||
"uci": [ "rtp2httpd" ]
|
||||
},
|
||||
"write": {
|
||||
"uci": [ "rtp2httpd" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user