1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-02-15 04:42:04 +00:00
srs/trunk/research/console/views/config.html

1007 lines
59 KiB
HTML
Raw Normal View History

2021-04-24 11:07:37 +00:00
<div>
<div class="accordion">
<div class="accordion-group">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost Summary, 概览
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.id">
<td>vhost.id</td>
<td><a href="#/vhosts/{{vhost.id}}">{{vhost.id}}</a></td>
<td>Vhost的统计信息必须有访问时才会有数据.</td>
</tr>
<tr ng-show="!vhost.id">
<td>vhost.id</td>
<td>{{vhost.id}}</td>
<td>该Vhost没有任何访问客户端无统计信息.</td>
</tr>
<tr ng-show="vhost.enabled != undefined">
<td>vhost.enabled</td>
<td>{{vhost.enabled| sc_filter_enabled}}</td>
<td>Vhost是否启用。默认: {{true| sc_filter_enabled}}</td>
</tr>
<tr>
<td>vhost.name</td>
<td>{{vhost.name}}</td>
<td>Vhost的名称即客户的服务域名或者虚拟主机名服务器上不能重名。</td>
</tr>
<tr ng-show="vhost.chunk_size">
<td>vhost.chunk_size</td>
<td>{{vhost.chunk_size}}</td>
<td>RTMP Chunk大小即分包大小。默认: 全局的chunk_size</td>
</tr>
<tr ng-show="vhost.min_latency">
<td>vhost.min_latency</td>
<td>{{vhost.min_latency| sc_filter_enabled}}</td>
<td>是否开启最小延迟配置将设置vhost.publish.mr=off。默认: {{false| sc_filter_enabled}}</td>
</tr>
<tr ng-show="vhost.tcp_nodelay">
<td>vhost.tcp_nodelay</td>
<td>{{vhost.tcp_nodelay| sc_filter_enabled}}</td>
<td>是否设置TCP_NODELAY将包及时发送到客户端但严重影响性能。默认: {{false| sc_filter_enabled}}</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.cluster">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost Cluster, 流集群设置
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.cluster.mode">
<td>vhost.cluster.mode</td>
<td>{{vhost.cluster.mode}}</td>
<td>RTMP/FLV流集群模式的类型local为源站remote为边缘。默认: local</td>
</tr>
<tr ng-show="vhost.cluster.origin">
<td>vhost.cluster.origin</td>
<td>{{vhost.cluster.origin}}</td>
<td>边缘模式时,回源的源站服务器地址。</td>
</tr>
<tr ng-show="vhost.cluster.token_traverse != undefined">
<td>vhost.cluster.token_traverse</td>
<td>{{vhost.cluster.token_traverse| sc_filter_enabled}}</td>
<td>RTMP Edge防盗链将连接信息传递给Origin源站验证。默认: {{false| sc_filter_enabled}}</td>
</tr>
<tr ng-show="vhost.cluster.vhost">
<td>vhost.cluster.vhost</td>
<td>{{vhost.cluster.vhost}}</td>
<td>边缘模式时回源的vhost可以改变vhost回源。</td>
</tr>
<tr ng-show="vhost.cluster.debug_srs_upnode != undefined">
<td>vhost.cluster.debug_srs_upnode</td>
<td>{{vhost.cluster.debug_srs_upnode| sc_filter_enabled}}</td>
<td>连接上层节点时发送本节点信息,影响所有连接服务器的地方如回源。默认: {{true| sc_filter_enabled}}</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.forward">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost Forward, 转发设置
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.forward.enabled != undefined">
<td>vhost.forward.enabled</td>
<td>{{vhost.forward.enabled| sc_filter_enabled}}</td>
<td>是否开启Forward。默认: {{false| sc_filter_enabled}}</td>
</tr>
<tr ng-show="vhost.forward.destination">
<td>vhost.forward.destination</td>
<td>{{vhost.forward.destination}}</td>
<td>转发的服务器列表,同时转发给这些服务器。</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.play">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost Play, 播放客户端设置
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.play.gop_cache != undefined">
<td>vhost.play.gop_cache</td>
<td>{{vhost.play.gop_cache| sc_filter_enabled}}</td>
<td>是否开启GopCache可快速启动播放。默认: {{true| sc_filter_enabled}}</td>
</tr>
<tr ng-show="vhost.play.queue_length">
<td>vhost.play.queue_length</td>
<td>{{vhost.play.queue_length}}</td>
<td>秒。队列的最大长度,超过后清空队列。默认: 30</td>
</tr>
<tr ng-show="vhost.play.time_jitter">
<td>vhost.play.time_jitter</td>
<td>{{vhost.play.time_jitter}}</td>
<td>时间戳校正算法。full: 完全校正zero: 零校正off: 关闭。默认: full</td>
</tr>
<tr ng-show="vhost.play.mix_correct != undefined">
<td>vhost.play.mix_correct</td>
<td>{{vhost.play.mix_correct| sc_filter_enabled}}</td>
<td>是否开启MixCorrect混合单增校正算法。默认: {{false| sc_filter_enabled}}</td>
</tr>
<tr ng-show="vhost.play.atc != undefined">
<td>vhost.play.atc</td>
<td>{{vhost.play.atc| sc_filter_enabled}}</td>
<td>是否开启ATC绝对时间戳。启用后将设置vhost.play.time_jitter为off。默认: {{false| sc_filter_enabled}}</td>
</tr>
<tr ng-show="vhost.play.atc_auto != undefined">
<td>vhost.play.atc_auto</td>
<td>{{vhost.play.atc_auto| sc_filter_enabled}}</td>
<td>是否开启自动ATC。metadata中bravo_atc="true"时自动开启ATC。默认: {{false| sc_filter_enabled}}</td>
</tr>
<tr ng-show="vhost.play.mw_latency">
<td>vhost.play.mw_latency</td>
<td>{{vhost.play.mw_latency}}</td>
<td>毫秒。合并写入延迟同时将多少毫秒的包一次写入writev高性能的关键配置。默认: 350</td>
</tr>
<tr ng-show="vhost.play.send_min_interval">
<td>vhost.play.send_min_interval</td>
<td>{{vhost.play.send_min_interval}}</td>
<td>毫秒。每个包发送的间隔。能控制发包间隔但严重影响性能0表示关闭。默认: 0</td>
</tr>
<tr ng-show="vhost.play.reduce_sequence_header != undefined">
<td>vhost.play.reduce_sequence_header</td>
<td>{{vhost.play.reduce_sequence_header| sc_filter_enabled}}</td>
<td>是否去掉重复的SequenceHeader有些编码器不能接收重复的sps/pps。默认: {{false| sc_filter_enabled}}</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.publish">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost Publish, 推流客户端设置
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.publish.mr != undefined">
<td>vhost.publish.mr</td>
<td>{{vhost.publish.mr| sc_filter_enabled}}</td>
<td>是否开启合并读,推流客户端较多时能提高性能。默认: {{false| sc_filter_enabled}}</td>
</tr>
<tr ng-show="vhost.publish.mr_latency">
<td>vhost.publish.mr_latency</td>
<td>{{vhost.publish.mr_latency}}</td>
<td>毫秒。合并读的延迟,即至少等一定毫秒才读包。默认: 350</td>
</tr>
<tr ng-show="vhost.publish.firstpkt_timeout">
<td>vhost.publish.firstpkt_timeout</td>
<td>{{vhost.publish.firstpkt_timeout}}</td>
<td>毫秒。发布客户端首包超时的时间。默认: 20000</td>
</tr>
<tr ng-show="vhost.publish.normal_timeout">
<td>vhost.publish.normal_timeout</td>
<td>{{vhost.publish.normal_timeout}}</td>
<td>毫秒。发布客户端非首包超时的时间。默认: 5000</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.refer || vhost.cluster">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost Hotlink Denial, 防盗链设置
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.refer.enabled != undefined">
<td>vhost.refer.enabled</td>
<td>{{vhost.refer.enabled| sc_filter_enabled}}</td>
<td>是否开启Referer防盗链机制。默认: {{false| sc_filter_enabled}}</td>
</tr>
<tr ng-show="vhost.refer.all">
<td>vhost.refer.all</td>
<td>{{vhost.refer.all}}</td>
<td>针对play和publish都有效的Referer设置。</td>
</tr>
<tr ng-show="vhost.refer.play">
<td>vhost.refer.play</td>
<td>{{vhost.refer.play}}</td>
<td>只针对play有效的Referer设置。</td>
</tr>
<tr ng-show="vhost.refer.publish">
<td>vhost.refer.publish</td>
<td>{{vhost.refer.publish}}</td>
<td>只针对publish有效的Referer设置。</td>
</tr>
<tr ng-show="vhost.cluster.token_traverse != undefined">
<td>vhost.cluster.token_traverse</td>
<td>{{vhost.cluster.token_traverse| sc_filter_enabled}}</td>
<td>RTMP Edge防盗链将连接信息传递给Origin源站验证。默认: {{false| sc_filter_enabled}}</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.bandcheck">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost Bandcheck, 带宽测试
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.bandcheck.enabled != undefined">
<td>vhost.bandcheck.enabled</td>
<td>{{vhost.bandcheck.enabled| sc_filter_enabled}}</td>
<td>是否开启测速配置。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="vhost.bandcheck.key">
<td>vhost.bandcheck.key</td>
<td>{{vhost.bandcheck.key}}</td>
<td>带宽测速的Key客户端必须指定合法的Key才能测速。</td>
</tr>
<tr ng-show="vhost.bandcheck.interval">
<td>vhost.bandcheck.interval</td>
<td>{{vhost.bandcheck.interval}}</td>
<td>秒。带宽测速的间隔,低于这个间隔不提供服务。默认: 30。</td>
</tr>
<tr ng-show="vhost.bandcheck.limit_kbps">
<td>vhost.bandcheck.limit_kbps</td>
<td>{{vhost.bandcheck.limit_kbps}}</td>
<td>Kbps。带宽测速的上限速度。默认: 1000。</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.security">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost Security, 安全设置
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.security.enabled != undefined">
<td>vhost.security.enabled</td>
<td>{{vhost.security.enabled| sc_filter_enabled}}</td>
<td>是否开启安全设置。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-repeat="allow in vhost.security.allows">
<td>vhost.security.{{allow.action}}</td>
<td>{{allow.action}} {{allow.method}} {{allow.entry}}</td>
<td>{{allow| sc_filter_security}}</td>
</tr>
<tr ng-repeat="deny in vhost.security.denies">
<td>vhost.security.{{deny.action}}</td>
<td>{{deny.action}} {{deny.method}} {{deny.entry}}</td>
<td>{{deny| sc_filter_security}}</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.http_static">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost HTTP Static, HTTP静态服务器
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.http_static.enabled != undefined">
<td>vhost.http_static.enabled</td>
<td>{{vhost.http_static.enabled| sc_filter_enabled}}</td>
<td>是否开启Vhost的HTTP静态配置。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="vhost.http_static.mount">
<td>vhost.http_static.mount</td>
<td>{{vhost.http_static.mount}}</td>
<td>Vhost特殊的挂载信息。默认: [vhost]/。</td>
</tr>
<tr ng-show="vhost.http_static.dir">
<td>vhost.http_static.dir</td>
<td>{{vhost.http_static.dir}}</td>
<td>Vhost的主目录。</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.http_remux">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost HTTP Remux, HTTP流服务器
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.http_remux.enabled != undefined">
<td>vhost.http_remux.enabled</td>
<td>{{vhost.http_remux.enabled| sc_filter_enabled}}</td>
<td>是否开启Vhost的HTTP流服务器配置。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="vhost.http_remux.fast_cache">
<td>vhost.http_remux.fast_cache</td>
<td>{{vhost.http_remux.fast_cache}}</td>
<td>秒。音频流的预缓存时间只对aac/mp3等纯音频流有效。默认: 30。</td>
</tr>
<tr ng-show="vhost.http_remux.mount">
<td>vhost.http_remux.mount</td>
<td>{{vhost.http_remux.mount}}</td>
<td>挂载点,即用户的访问路径。默认: [vhost]/[app]/[stream].flv。</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.http_hooks">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost HTTP Callbacks/Hooks, HTTP回调
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.http_hooks.enabled != undefined">
<td>vhost.http_hooks.enabled</td>
<td>{{vhost.http_hooks.enabled| sc_filter_enabled}}</td>
<td>是否开启Vhost的HTTP回调配置。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="vhost.http_hooks.on_connect">
<td>vhost.http_hooks.on_connect</td>
<td><span title="{{vhost.http_hooks.on_connect}}">hooks</span></td>
<td>当RTMP客户端Connect时的回调知道了tcUrl但不知道Type和StreamName。</td>
</tr>
<tr ng-show="vhost.http_hooks.on_close">
<td>vhost.http_hooks.on_close</td>
<td><span title="{{vhost.http_hooks.on_close}}">hooks</span></td>
<td>当RTMP客户端Close时的回调即断开连接时。</td>
</tr>
<tr ng-show="vhost.http_hooks.on_publish">
<td>vhost.http_hooks.on_publish</td>
<td><span title="{{vhost.http_hooks.on_publish}}">hooks</span></td>
<td>当RTMP客户端Publish时的回调知道了类型和StreamName。</td>
</tr>
<tr ng-show="vhost.http_hooks.on_unpublish">
<td>vhost.http_hooks.on_unpublish</td>
<td><span title="{{vhost.http_hooks.on_unpublish}}">hooks</span></td>
<td>当RTMP客户端UnPublish时的回调即停止推流。</td>
</tr>
<tr ng-show="vhost.http_hooks.on_play">
<td>vhost.http_hooks.on_play</td>
<td><span title="{{vhost.http_hooks.on_play}}">hooks</span></td>
<td>当RTMP客户端Play时的回调知道了类型和StreamName。</td>
</tr>
<tr ng-show="vhost.http_hooks.on_stop">
<td>vhost.http_hooks.on_stop</td>
<td><span title="{{vhost.http_hooks.on_stop}}">hooks</span></td>
<td>当RTMP客户端Stop时的回调即停止播放时。</td>
</tr>
<tr ng-show="vhost.http_hooks.on_dvr">
<td>vhost.http_hooks.on_dvr</td>
<td><span title="{{vhost.http_hooks.on_dvr}}">hooks</span></td>
<td>当服务器DVR关闭文件时的回调。</td>
</tr>
<tr ng-show="vhost.http_hooks.on_hls">
<td>vhost.http_hooks.on_hls</td>
<td><span title="{{vhost.http_hooks.on_hls}}">hooks</span></td>
<td>当服务器HLS关闭TS切片文件时的回调支持多个地址通知系统HLS切片生成了。</td>
</tr>
<tr ng-show="vhost.http_hooks.on_hls_notify">
<td>vhost.http_hooks.on_hls_notify</td>
<td><span title="{{vhost.http_hooks.on_hls_notify}}">hooks</span></td>
<td>当服务器HLS更新流信息(一般是关闭切片)只支持一个地址可用来访问CDN做预取。</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.exec">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost Exec, 执行外部程序
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.exec.enabled != undefined">
<td>vhost.exec.enabled</td>
<td>{{vhost.exec.enabled| sc_filter_enabled}}</td>
<td>是否开启Vhost的EXEC配置。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="vhost.exec.publish">
<td>vhost.exec.publish</td>
<td><span title="{{vhost.exec.publish}}">EXEC</span></td>
<td>发布流时的EXEC配置。</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.hls || vhost.http_hooks">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost HLS, HLS流
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.hls.enabled != undefined">
<td>vhost.hls.enabled</td>
<td>{{vhost.hls.enabled| sc_filter_enabled}}</td>
<td>是否支持HLS输出。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="vhost.hls.hls_fragment">
<td>vhost.hls.hls_fragment</td>
<td>{{vhost.hls.hls_fragment}}</td>
<td>秒。HLS的TS切片的长度。默认: 10。</td>
</tr>
<tr ng-show="vhost.hls.hls_td_ratio">
<td>vhost.hls.hls_td_ratio</td>
<td>{{vhost.hls.hls_td_ratio}}</td>
<td>HLS的#EXT-X-TARGETDURATION的值为hls_fragment的默认倍数。默认: 1.5。</td>
</tr>
<tr ng-show="vhost.hls.hls_aof_ratio">
<td>vhost.hls.hls_aof_ratio</td>
<td>{{vhost.hls.hls_aof_ratio}}</td>
<td>纯音频的溢出倍数当TS切片超过溢出时长时就生成切片。默认: 2.0。</td>
</tr>
<tr ng-show="vhost.hls.hls_window">
<td>vhost.hls.hls_window</td>
<td>{{vhost.hls.hls_window}}</td>
<td>秒。HLS的TS切片的窗口即m3u8中有多少个TS切片。默认: 60。</td>
</tr>
<tr ng-show="vhost.hls.hls_on_error">
<td>vhost.hls.hls_on_error</td>
<td>{{vhost.hls.hls_on_error}}</td>
<td>
错误时ignore: 忽略并禁用HLSdisconnect: 断开推流连接;
continue: 继续再试。默认: ignore
</td>
</tr>
<tr ng-show="vhost.hls.hls_path">
<td>vhost.hls.hls_path</td>
<td>{{vhost.hls.hls_path}}</td>
<td>HLS的存储目录。默认: ./objs/nginx/html。</td>
</tr>
<tr ng-show="vhost.hls.hls_m3u8_file">
<td>vhost.hls.hls_m3u8_file</td>
<td>{{vhost.hls.hls_m3u8_file}}</td>
<td>m3u8文件模板。默认: [app]/[stream].m3u8</td>
</tr>
<tr ng-show="vhost.hls.hls_ts_file">
<td>vhost.hls.hls_ts_file</td>
<td>{{vhost.hls.hls_ts_file}}</td>
<td>ts文件模板。默认: [app]/[stream]-[seq].ts</td>
</tr>
<tr ng-show="vhost.hls.hls_ts_floor != undefined">
<td>vhost.hls.hls_ts_floor</td>
<td>{{vhost.hls.hls_ts_floor| sc_filter_enabled}}</td>
<td>是否开启TS文件名递增算法。默认: {{false| sc_filter_enabled}}</td>
</tr>
<tr ng-show="vhost.hls.hls_entry_prefix">
<td>vhost.hls.hls_entry_prefix</td>
<td>{{vhost.hls.hls_entry_prefix}}</td>
<td>HLS的TS切片的前缀。</td>
</tr>
<tr ng-show="vhost.hls.hls_acodec">
<td>vhost.hls.hls_acodec</td>
<td>{{vhost.hls.hls_acodec}}</td>
<td>HLS默认的音频编码。默认: aac</td>
</tr>
<tr ng-show="vhost.hls.hls_vcodec">
<td>vhost.hls.hls_vcodec</td>
<td>{{vhost.hls.hls_vcodec}}</td>
<td>HLS默认的视频编码。默认: h264</td>
</tr>
<tr ng-show="vhost.hls.hls_cleanup != undefined">
<td>vhost.hls.hls_cleanup</td>
<td>{{vhost.hls.hls_cleanup| sc_filter_enabled}}</td>
<td>是否清理超过窗口的TS切片。默认: {{true| sc_filter_enabled}}</td>
</tr>
<tr ng-show="vhost.hls.hls_dispose != undefined">
<td>vhost.hls.hls_dispose</td>
<td>{{vhost.hls.hls_dispose}}</td>
<td>秒。HLS没有收到数据时清理的超时时间。0表示禁用。默认: 0</td>
</tr>
<tr ng-show="vhost.hls.hls_nb_notify">
<td>vhost.hls.hls_nb_notify</td>
<td>{{vhost.hls.hls_nb_notify}}</td>
<td>HLS请求on_hls_notify读取内容的最大长度。默认: 64</td>
</tr>
<tr ng-show="vhost.hls.hls_wait_keyframe != undefined">
<td>vhost.hls.hls_wait_keyframe</td>
<td>{{vhost.hls.hls_wait_keyframe| sc_filter_enabled}}</td>
<td>关闭TS切片时是否等待关键帧。默认: {{true| sc_filter_enabled}}</td>
</tr>
<tr ng-show="vhost.http_hooks.on_hls">
<td>vhost.http_hooks.on_hls</td>
<td><span title="{{vhost.http_hooks.on_hls}}">hooks</span></td>
<td>当服务器HLS关闭TS切片文件时的回调支持多个地址通知系统HLS切片生成了。</td>
</tr>
<tr ng-show="vhost.http_hooks.on_hls_notify">
<td>vhost.http_hooks.on_hls_notify</td>
<td><span title="{{vhost.http_hooks.on_hls_notify}}">hooks</span></td>
<td>当服务器HLS更新流信息(一般是关闭切片)只支持一个地址可用来访问CDN做预取。</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.hds">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost HDS, HDS流
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.hds.enabled != undefined">
<td>vhost.hds.enabled</td>
<td>{{vhost.hds.enabled| sc_filter_enabled}}</td>
<td>是否分发HDS流。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="vhost.hds.hds_fragment">
<td>vhost.hds.hds_fragment</td>
<td>{{vhost.hds.hds_fragment}}</td>
<td>秒。HDS的f4v切片的长度。默认: 10。</td>
</tr>
<tr ng-show="vhost.hds.hds_window">
<td>vhost.hds.hds_window</td>
<td>{{vhost.hds.hds_window}}</td>
<td>秒。HDS的f4v切片的窗口即f4m中有多少个f4v切片。默认: 60。</td>
</tr>
<tr ng-show="vhost.hds.hds_path">
<td>vhost.hds.hds_path</td>
<td>{{vhost.hds.hds_path}}</td>
<td>HDS的存储目录。默认: ./objs/nginx/html。</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-show="vhost.dvr || vhost.http_hooks">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost DVR, 直播录制
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="vhost.dvr.enabled != undefined">
<td>vhost.dvr.enabled</td>
<td>{{vhost.dvr.enabled| sc_filter_enabled}}</td>
<td>是否开启直播录制。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="vhost.dvr.dvr_plan">
<td>vhost.dvr.dvr_plan</td>
<td>{{vhost.dvr.dvr_plan}}</td>
<td>录制计划session: 按Sessionsegment: 分段append: 一个文件。默认: session</td>
</tr>
<tr ng-show="vhost.dvr.dvr_apply">
<td>vhost.dvr.dvr_apply</td>
<td><span title="{{vhost.dvr.dvr_apply}}">Filters</span></td>
<td>录制应用的目标all表示所有流app/stream指定特定的流。默认: all</td>
</tr>
<tr ng-show="vhost.dvr.dvr_path">
<td>vhost.dvr.dvr_path</td>
<td><span title="{{vhost.dvr.dvr_path}}">PATH</span></td>
<td>录制文件的模板。默认: ./objs/nginx/html/[app]/[stream].[timestamp].flv</td>
</tr>
<tr ng-show="vhost.dvr.dvr_duration">
<td>vhost.dvr.dvr_duration</td>
<td>{{vhost.dvr.dvr_duration}}</td>
<td>秒。segment计划时录制文件的时长。默认: 30</td>
</tr>
<tr ng-show="vhost.dvr.dvr_wait_keyframe != undefined">
<td>vhost.dvr.dvr_wait_keyframe</td>
<td>{{vhost.dvr.dvr_wait_keyframe| sc_filter_enabled}}</td>
<td>segment计划时关闭文件时是否等待关键帧。默认: {{true| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="vhost.dvr.time_jitter">
<td>vhost.dvr.time_jitter</td>
<td>{{vhost.dvr.time_jitter}}</td>
<td>时间戳校正算法。full: 完全校正zero: 零校正off: 关闭。默认: full</td>
</tr>
<tr ng-show="vhost.http_hooks.on_dvr">
<td>vhost.http_hooks.on_dvr</td>
<td><span title="{{vhost.http_hooks.on_dvr}}">hooks</span></td>
<td>当服务器DVR关闭文件时的回调。</td>
</tr>
</table>
</div>
</div>
</div>
<div class="accordion-group" ng-repeat="ingest in vhost.ingests">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost Ingest, 采集, id={{ingest.id}}
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="ingest.enabled != undefined">
<td>ingest.enabled</td>
<td>{{ingest.enabled| sc_filter_enabled}}</td>
<td>是否开启采集。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="ingest.input.type">
<td>ingest.input.type</td>
<td>{{ingest.input.type}}</td>
<td>采集的类型file: 文件stream: 流。默认: file</td>
</tr>
<tr ng-show="ingest.input.url">
<td>ingest.input.url</td>
<td><span title="{{ingest.input.url}}">URL</span></td>
<td>采集的地址。</td>
</tr>
</table>
<div class="accordion-group" ng-repeat="engine in [ingest.engine]">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Ingest Engine, 采集引擎 <span ng-show="engine.id">id={{engine.id}}</span>
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="engine.enabled != undefined">
<td>engine.enabled</td>
<td>{{engine.enabled| sc_filter_enabled}}</td>
<td>是否开启转码引擎。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="engine.iformat">
<td>engine.iformat</td>
<td>{{engine.iformat}}</td>
<td>引擎的输入格式,即"-i v"。默认: flv</td>
</tr>
<tr ng-show="engine.vfilter">
<td>engine.vfilter</td>
<td><p ng-repeat="(fk, fv) in engine.vfilter">-{{fk}} {{fv}}</p></td>
<td>引擎的视频参数,譬如滤镜,在"-i"和"-vcodec"之间的参数。</td>
</tr>
<tr ng-show="engine.vcodec">
<td>engine.vcodec</td>
<td>{{engine.vcodec}}</td>
<td>引擎的视频编码器,即"-vcodec v"可以是libx264,copy,vn</td>
</tr>
<tr ng-show="engine.vbitrate">
<td>engine.vbitrate</td>
<td>{{engine.vbitrate}}</td>
<td>Kbps。编码器输出的视频码率即"-v:b v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.vfps">
<td>engine.vfps</td>
<td>{{engine.vfps}}</td>
<td>fps。编码器输出的视频帧率即"-r v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.vwidth">
<td>engine.vwidth</td>
<td>{{engine.vwidth}}</td>
<td>px。编码器输出的视频宽度即"-s v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.vheight">
<td>engine.vheight</td>
<td>{{engine.vheight}}</td>
<td>px。编码器输出的视频高度即"-s v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.vthreads">
<td>engine.vthreads</td>
<td>{{engine.vthreads}}</td>
<td>编码器使用的最多线程数,即"-thread v"。默认: 1</td>
</tr>
<tr ng-show="engine.vprofile">
<td>engine.vprofile</td>
<td>{{engine.vprofile}}</td>
<td>视频的编码profile即"-profile:v v"可以是high,main,baseline</td>
</tr>
<tr ng-show="engine.vpreset">
<td>engine.vpreset</td>
<td>{{engine.vpreset}}</td>
<td>视频的编码preset即"-preset v"可以是medium,slow,slower,veryslow,placebo</td>
</tr>
<tr ng-show="engine.vparams">
<td>engine.vparams</td>
<td><p ng-repeat="(fk, fv) in engine.vparams">-{{fk}} {{fv}}</p></td>
<td>引擎的视频转码参数譬如264的参数在"-vpreset"和"-acodec"之前的参数。</td>
</tr>
<tr ng-show="engine.acodec">
<td>engine.acodec</td>
<td>{{engine.acodec}}</td>
<td>音频编码器,即"-acodec v"可以是libfdk_aac,copy,an</td>
</tr>
<tr ng-show="engine.abitrate">
<td>engine.abitrate</td>
<td>{{engine.abitrate}}</td>
<td>Kbps。编码器输出的音频码率即"-b:a v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.asample_rate">
<td>engine.asample_rate</td>
<td>{{engine.asample_rate}}</td>
<td>编码器输出的音频采样率,即"-ar v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.achannels">
<td>engine.achannels</td>
<td>{{engine.achannels}}</td>
<td>编码器输出的音频声道,即"-ac v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.aparams">
<td>engine.aparams</td>
<td><p ng-repeat="(fk, fv) in engine.aparams">-{{fk}} {{fv}}</p></td>
<td>引擎的音频转码参数譬如aac的参数在"-ac"和"-f"/"-y"之前的参数。</td>
</tr>
<tr ng-show="engine.oformat">
<td>engine.oformat</td>
<td>{{engine.oformat}}</td>
<td>编码器输出的格式,可选。默认: flv</td>
</tr>
<tr ng-show="engine.output">
<td>engine.output</td>
<td><span title="{{engine.output}}">URL</span></td>
<td>编码器输出的url可以使用变量[vhost],[port],[app],[stream]<span ng-show="engine.id">,[engine]</span></td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="accordion-group" ng-repeat="transcode in vhost.transcodes">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Vhost Transcode, 转码, apply={{transcode.apply? transcode.apply:"vhost"}}
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="transcode.enabled != undefined">
<td>transcode.enabled</td>
<td>{{transcode.enabled| sc_filter_enabled}}</td>
<td>是否开启转码。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="transcode.ffmpeg">
<td>transcode.ffmpeg</td>
<td><span title="{{transcode.ffmpeg}}">{{transcode.ffmpeg}}</span></td>
<td>编码器的地址。</td>
</tr>
</table>
<div class="accordion-group" ng-repeat="engine in transcode.engines">
<div class="accordion-heading" sc-collapse="in">
<a class="accordion-toggle" href="javascript:void(0)">
Transcode Engine, 转码引擎 <span ng-show="engine.id">id={{engine.id}}</span>
</a>
</div>
<div class="accordion-body collapse">
<div class="accordion-inner">
<table class="table table-striped table-hover table-bordered">
<tr>
<th>Key</th>
<th>Value</th>
<th>Description</th>
</tr>
<tr ng-show="engine.enabled != undefined">
<td>engine.enabled</td>
<td>{{engine.enabled| sc_filter_enabled}}</td>
<td>是否开启转码引擎。默认: {{false| sc_filter_enabled}}。</td>
</tr>
<tr ng-show="engine.iformat">
<td>engine.iformat</td>
<td>{{engine.iformat}}</td>
<td>引擎的输入格式,即"-i v"。默认: flv</td>
</tr>
<tr ng-show="engine.vfilter">
<td>engine.vfilter</td>
<td><p ng-repeat="(fk, fv) in engine.vfilter">-{{fk}} {{fv}}</p></td>
<td>引擎的视频参数,譬如滤镜,在"-i"和"-vcodec"之间的参数。</td>
</tr>
<tr ng-show="engine.vcodec">
<td>engine.vcodec</td>
<td>{{engine.vcodec}}</td>
<td>引擎的视频编码器,即"-vcodec v"可以是libx264,copy,vn</td>
</tr>
<tr ng-show="engine.vbitrate">
<td>engine.vbitrate</td>
<td>{{engine.vbitrate}}</td>
<td>Kbps。编码器输出的视频码率即"-v:b v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.vfps">
<td>engine.vfps</td>
<td>{{engine.vfps}}</td>
<td>fps。编码器输出的视频帧率即"-r v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.vwidth">
<td>engine.vwidth</td>
<td>{{engine.vwidth}}</td>
<td>px。编码器输出的视频宽度即"-s v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.vheight">
<td>engine.vheight</td>
<td>{{engine.vheight}}</td>
<td>px。编码器输出的视频高度即"-s v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.vthreads">
<td>engine.vthreads</td>
<td>{{engine.vthreads}}</td>
<td>编码器使用的最多线程数,即"-thread v"。默认: 1</td>
</tr>
<tr ng-show="engine.vprofile">
<td>engine.vprofile</td>
<td>{{engine.vprofile}}</td>
<td>视频的编码profile即"-profile:v v"可以是high,main,baseline</td>
</tr>
<tr ng-show="engine.vpreset">
<td>engine.vpreset</td>
<td>{{engine.vpreset}}</td>
<td>视频的编码preset即"-preset v"可以是medium,slow,slower,veryslow,placebo</td>
</tr>
<tr ng-show="engine.vparams">
<td>engine.vparams</td>
<td><p ng-repeat="(fk, fv) in engine.vparams">-{{fk}} {{fv}}</p></td>
<td>引擎的视频转码参数譬如264的参数在"-vpreset"和"-acodec"之前的参数。</td>
</tr>
<tr ng-show="engine.acodec">
<td>engine.acodec</td>
<td>{{engine.acodec}}</td>
<td>音频编码器,即"-acodec v"可以是libfdk_aac,copy,an</td>
</tr>
<tr ng-show="engine.abitrate">
<td>engine.abitrate</td>
<td>{{engine.abitrate}}</td>
<td>Kbps。编码器输出的音频码率即"-b:a v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.asample_rate">
<td>engine.asample_rate</td>
<td>{{engine.asample_rate}}</td>
<td>编码器输出的音频采样率,即"-ar v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.achannels">
<td>engine.achannels</td>
<td>{{engine.achannels}}</td>
<td>编码器输出的音频声道,即"-ac v"。0表示跟随源。默认: 0</td>
</tr>
<tr ng-show="engine.aparams">
<td>engine.aparams</td>
<td><p ng-repeat="(fk, fv) in engine.aparams">-{{fk}} {{fv}}</p></td>
<td>引擎的音频转码参数譬如aac的参数在"-ac"和"-f"/"-y"之前的参数。</td>
</tr>
<tr ng-show="engine.oformat">
<td>engine.oformat</td>
<td>{{engine.oformat}}</td>
<td>编码器输出的格式,可选。默认: flv</td>
</tr>
<tr ng-show="engine.output">
<td>engine.output</td>
<td><span title="{{engine.output}}">URL</span></td>
<td>编码器输出的url可以使用变量[vhost],[port],[app],[stream]<span ng-show="engine.id">,[engine]</span></td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>