1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-02-12 19:31:53 +00:00
srs/trunk/research/console/views/config.html

1007 lines
No EOL
59 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>