1164 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			1164 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
include( "head.php" );
 | 
						|
include( "groupList.php" );
 | 
						|
?>
 | 
						|
<div id="alert"></div>
 | 
						|
<div class="row">
 | 
						|
	<div class="col-lg-12">
 | 
						|
		<div class="panel panel-default">
 | 
						|
			<div class="title">
 | 
						|
				<h3 class="panel-title">
 | 
						|
					<cn>全局配置</cn>
 | 
						|
					<en>Overall config</en>
 | 
						|
				</h3>
 | 
						|
			</div>
 | 
						|
			<div class="panel-body">
 | 
						|
				<div class="row text-center" style="margin-top: 5px;">
 | 
						|
					<div class="col-md-2 col-xs-4"></div>
 | 
						|
					<div class="col-md-1 col-xs-2">HTTP</div>
 | 
						|
<?php
 | 
						|
if($hardware["function"]["hls"])
 | 
						|
{
 | 
						|
?>
 | 
						|
					<div class="col-md-1 col-xs-2">HLS</div>
 | 
						|
<?php
 | 
						|
}
 | 
						|
?>
 | 
						|
					<div class="col-md-1 col-xs-2">RTMP</div>
 | 
						|
					<div class="col-md-1 col-xs-2">RTSP</div>
 | 
						|
					<div class="col-md-1 col-xs-4">
 | 
						|
						<cn>组播</cn>
 | 
						|
						<en>multicast</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>组播地址</cn>
 | 
						|
						<en>multicast addr</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<cn>推流</cn>
 | 
						|
						<en>push</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4"></div>
 | 
						|
				</div>
 | 
						|
				<hr style="margin-top:5px; margin-bottom: 10px;"/>
 | 
						|
				<div class="row" id="all">
 | 
						|
					<div class="col-md-2 col-xs-4 text-center">
 | 
						|
						<cn>主流协议</cn>
 | 
						|
						<en>Main protocol</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<input type="checkbox" zcfg="http" class="switch form-control">
 | 
						|
					</div>
 | 
						|
<?php
 | 
						|
if($hardware["function"]["hls"])
 | 
						|
{
 | 
						|
?>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<input type="checkbox" zcfg="hls" class="switch form-control">
 | 
						|
					</div>
 | 
						|
<?php
 | 
						|
}
 | 
						|
?>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<input type="checkbox" zcfg="rtmp" class="switch form-control">
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
<?php
 | 
						|
if($hardware["function"]["rtspAuth"])
 | 
						|
{
 | 
						|
?>
 | 
						|
                    <input type="checkbox" zcfg="rtsp.enable" class="switch form-control">
 | 
						|
<?php
 | 
						|
}
 | 
						|
else
 | 
						|
{
 | 
						|
?>
 | 
						|
                    <input type="checkbox" zcfg="rtsp" class="switch form-control">
 | 
						|
<?php
 | 
						|
}
 | 
						|
?>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-4">
 | 
						|
						<input type="checkbox" zcfg="udp.enable" class="switch form-control">
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<input zcfg="udp.ip*:*udp.port" type="text" class="form-control">
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<input type="checkbox" zcfg="push.enable" class="switch form-control">
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4 text-center"></div>
 | 
						|
				</div>
 | 
						|
				<div class="row" id="all_sub" style="margin-top: 5px;">
 | 
						|
					<div class="col-md-2 col-xs-4 text-center">
 | 
						|
						<cn>辅流协议</cn>
 | 
						|
						<en>Sub protocol</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<input type="checkbox" zcfg="http" class="switch form-control">
 | 
						|
					</div>
 | 
						|
<?php
 | 
						|
if($hardware["function"]["hls"])
 | 
						|
{
 | 
						|
?>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<input type="checkbox" zcfg="hls" class="switch form-control">
 | 
						|
					</div>
 | 
						|
<?php
 | 
						|
}
 | 
						|
?>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<input type="checkbox" zcfg="rtmp" class="switch form-control">
 | 
						|
					</div>
 | 
						|
                    <div class="col-md-1 col-xs-2">
 | 
						|
<?php
 | 
						|
if($hardware["function"]["rtspAuth"])
 | 
						|
{
 | 
						|
?>
 | 
						|
                        <input type="checkbox" zcfg="rtsp.enable" class="switch form-control">
 | 
						|
<?php
 | 
						|
}
 | 
						|
else
 | 
						|
{
 | 
						|
?>
 | 
						|
                        <input type="checkbox" zcfg="rtsp" class="switch form-control">
 | 
						|
<?php
 | 
						|
}
 | 
						|
?>
 | 
						|
                    </div>
 | 
						|
					<div class="col-md-1 col-xs-4">
 | 
						|
						<input type="checkbox" zcfg="udp.enable" class="switch form-control">
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<input zcfg="udp.ip*:*udp.port" type="text" class="form-control">
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<input type="checkbox" zcfg="push.enable" class="switch form-control">
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4 text-center"></div>
 | 
						|
				</div>
 | 
						|
				<hr/>
 | 
						|
				<div class="row text-center">
 | 
						|
					<button id="setAll" type="button" class="btn btn-warning">
 | 
						|
						<cn>应用到本地</cn>
 | 
						|
						<en>Save to local</en>
 | 
						|
					</button>
 | 
						|
					<button id="setAllGroup" type="button" class="btn btn-warning">
 | 
						|
						<cn>应用到群组</cn>
 | 
						|
						<en>Save to group</en>
 | 
						|
					</button>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
	</div>
 | 
						|
	<div class="col-lg-12">
 | 
						|
		<ul class="nav nav-tabs" role="tablist">
 | 
						|
			<li role="presentation" class="active"><a href="#tab1" aria-controls="tab1" role="tab" data-toggle="tab"><i class="fa fa-upload"></i> <cn>码流配置</cn><en>Stream config</en></a>
 | 
						|
			</li>
 | 
						|
			<li role="presentation"><a href="#tab2" aria-controls="tab2" role="tab" data-toggle="tab"><i class="fa fa-gear"></i> <cn>TS设置</cn><en>TS Config</en></a>
 | 
						|
			</li>
 | 
						|
			<?php
 | 
						|
			if($hardware["function"]["hls"])
 | 
						|
              		{
 | 
						|
			?>
 | 
						|
			<li role="presentation"><a href="#tab3" aria-controls="tab3" role="tab" data-toggle="tab"><i class="fa fa-gear"></i> <cn>HLS设置</cn><en>HLS Config</en></a>
 | 
						|
			</li>
 | 
						|
			<?php
 | 
						|
			}
 | 
						|
			if($hardware["function"]["rtspAuth"])
 | 
						|
                {
 | 
						|
            ?>
 | 
						|
           <li role="presentation"><a href="#tab8" aria-controls="tab8" role="tab" data-toggle="tab"><i class="fa fa-gear"></i> <cn>RTSP设置</cn><en>RTSP Config</en></a>
 | 
						|
            </li>
 | 
						|
            <?php
 | 
						|
            }
 | 
						|
			if($hardware["function"]["srt"])
 | 
						|
              		{
 | 
						|
			?>
 | 
						|
			<li role="presentation"><a href="#tab7" aria-controls="tab7" role="tab" data-toggle="tab"><i class="fa fa-gear"></i> <cn>SRT设置</cn><en>SRT Config</en></a>
 | 
						|
			</li>
 | 
						|
			<?php
 | 
						|
			}
 | 
						|
 | 
						|
			if($hardware["function"]["ndi"])
 | 
						|
              		{
 | 
						|
			?>
 | 
						|
			<li role="presentation"><a href="#tab6" aria-controls="tab6" role="tab" data-toggle="tab"><i class="fa fa-gear"></i> <cn>NDI设置</cn><en>NDI Config</en></a>
 | 
						|
			</li>
 | 
						|
			<?php
 | 
						|
			}
 | 
						|
			?>
 | 
						|
			<li role="presentation"><a href="#tab5" aria-controls="tab5" role="tab" data-toggle="tab"><i class="fa fa-podcast"></i> <cn>推流设置</cn><en>Push Config</en></a>
 | 
						|
			</li>
 | 
						|
			<li role="presentation"><a href="#tab4" aria-controls="tab4" role="tab" data-toggle="tab"><i class="fa fa-link"></i> <cn>播放地址</cn><en>Play URL</en></a>
 | 
						|
			</li>
 | 
						|
		</ul>
 | 
						|
		<div class="tab-content">
 | 
						|
			<div role="tabpanel" class="tab-pane fade in active thin" id="tab1">
 | 
						|
				<div class="row text-center" style="margin-top: 5px;">
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>频道名称</cn>
 | 
						|
						<en>channel name</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">HTTP</div>
 | 
						|
<?php
 | 
						|
if($hardware["function"]["hls"])
 | 
						|
{
 | 
						|
?>
 | 
						|
					<div class="col-md-1 col-xs-2">HLS</div>
 | 
						|
<?php
 | 
						|
}
 | 
						|
?>
 | 
						|
					<div class="col-md-1 col-xs-2">RTMP</div>
 | 
						|
					<div class="col-md-1 col-xs-2">RTSP</div>
 | 
						|
					<div class="col-md-1 col-xs-4">
 | 
						|
						<cn>组播</cn>
 | 
						|
						<en>multicast</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>组播地址</cn>
 | 
						|
						<en>multicast addr</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<cn>推流</cn>
 | 
						|
						<en>push</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>推流地址</cn>
 | 
						|
						<en>push url</en>
 | 
						|
					</div>
 | 
						|
				</div>
 | 
						|
				<hr style="margin-top:5px; margin-bottom: 10px;"/>
 | 
						|
				<div id="templet">
 | 
						|
					<div class="row">
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].name" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input type="checkbox" zcfg="[#].stream.http" class="switch form-control">
 | 
						|
						</div>
 | 
						|
<?php
 | 
						|
if($hardware["function"]["hls"])
 | 
						|
{
 | 
						|
?>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input type="checkbox" zcfg="[#].stream.hls" class="switch form-control">
 | 
						|
						</div>
 | 
						|
<?php
 | 
						|
}
 | 
						|
?>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input type="checkbox" zcfg="[#].stream.rtmp" class="switch form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
<?php
 | 
						|
if($hardware["function"]["rtspAuth"])
 | 
						|
{
 | 
						|
?>
 | 
						|
                        <input type="checkbox" zcfg="[#].stream.rtsp.enable" class="switch form-control">
 | 
						|
<?php
 | 
						|
}
 | 
						|
else
 | 
						|
{
 | 
						|
?>
 | 
						|
                        <input type="checkbox" zcfg="[#].stream.rtsp" class="switch form-control">
 | 
						|
<?php
 | 
						|
}
 | 
						|
?>
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-4">
 | 
						|
							<input type="checkbox" zcfg="[#].stream.udp.enable" class="switch form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].stream.udp.ip*:*[#].stream.udp.port" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2"><input type="checkbox" zcfg="[#].stream.push.enable" class="switch form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].stream.push.path" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
					</div>
 | 
						|
					<div class="row"  style="margin-top: 5px;">
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input type="checkbox" zcfg="[#].stream2.http" class="switch form-control">
 | 
						|
						</div>
 | 
						|
<?php
 | 
						|
if($hardware["function"]["hls"])
 | 
						|
{
 | 
						|
?>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input type="checkbox" zcfg="[#].stream2.hls" class="switch form-control">
 | 
						|
						</div>
 | 
						|
<?php
 | 
						|
}
 | 
						|
?>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input type="checkbox" zcfg="[#].stream2.rtmp" class="switch form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
<?php
 | 
						|
if($hardware["function"]["rtspAuth"])
 | 
						|
{
 | 
						|
?>
 | 
						|
                            <input type="checkbox" zcfg="[#].stream2.rtsp.enable" class="switch form-control">
 | 
						|
<?php
 | 
						|
}
 | 
						|
else
 | 
						|
{
 | 
						|
?>
 | 
						|
                            <input type="checkbox" zcfg="[#].stream2.rtsp" class="switch form-control">
 | 
						|
<?php
 | 
						|
}
 | 
						|
?>
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-4">
 | 
						|
							<input type="checkbox" zcfg="[#].stream2.udp.enable" class="switch form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].stream2.udp.ip*:*[#].stream2.udp.port" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2"><input type="checkbox" zcfg="[#].stream2.push.enable" class="switch form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].stream2.push.path" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
					</div>
 | 
						|
					<hr style="margin-top:10px; margin-bottom: 10px;"/>
 | 
						|
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
            <div role="tabpanel" class="tab-pane fade in" id="tab8">
 | 
						|
                <div class="row text-center" style="margin-top: 5px;">
 | 
						|
                    <div class="col-md-2 col-xs-4">
 | 
						|
                        <cn>频道名称</cn>
 | 
						|
                        <en>channel name</en>
 | 
						|
                    </div>
 | 
						|
                    <div class="col-md-2 col-xs-4">
 | 
						|
                        <cn>用户名</cn>
 | 
						|
                        <en>username</en>
 | 
						|
                    </div>
 | 
						|
                    <div class="col-md-2 col-xs-4">
 | 
						|
                        <cn>密码</cn>
 | 
						|
                        <en>password</en>
 | 
						|
                    </div>
 | 
						|
                    <div class="col-md-1 col-xs-2">
 | 
						|
                        <cn>启用认证</cn>
 | 
						|
                        <en>auth</en>
 | 
						|
                    </div>
 | 
						|
                    <div class="col-md-1 col-xs-2">
 | 
						|
                        <cn>开关</cn>
 | 
						|
                        <en>enable</en>
 | 
						|
                    </div>
 | 
						|
                </div>
 | 
						|
                <hr style="margin-top:5px; margin-bottom: 10px;"/>
 | 
						|
                <div id="templetRTSP">
 | 
						|
                    <div class="row">
 | 
						|
                        <div class="col-md-2 col-xs-4">
 | 
						|
                            <input zcfg="[#].name" type="text" class="form-control">
 | 
						|
                        </div>
 | 
						|
                        <div class="col-md-2 col-xs-4">
 | 
						|
                            <input zcfg="[#].stream.rtsp.name" type="text" class="form-control">
 | 
						|
                        </div>
 | 
						|
                        <div class="col-md-2 col-xs-4">
 | 
						|
                            <input zcfg="[#].stream.rtsp.passwd" type="text" class="form-control">
 | 
						|
                        </div>
 | 
						|
                        <div class="col-md-1 col-xs-2">
 | 
						|
                            <input zcfg="[#].stream.rtsp.auth" type="checkbox" class="switch form-control">
 | 
						|
                        </div>
 | 
						|
                        <div class="col-md-1 col-xs-2">
 | 
						|
                            <input zcfg="[#].stream.rtsp.enable" type="checkbox" class="switch form-control">
 | 
						|
                        </div>
 | 
						|
                    </div>
 | 
						|
                    <div class="row" style="margin-top: 5px;">
 | 
						|
                        <div class="col-md-2 col-xs-4">
 | 
						|
                        </div>
 | 
						|
                        <div class="col-md-2 col-xs-4">
 | 
						|
                            <input zcfg="[#].stream2.rtsp.name" type="text" class="form-control">
 | 
						|
                        </div>
 | 
						|
                        <div class="col-md-2 col-xs-4">
 | 
						|
                            <input zcfg="[#].stream2.rtsp.passwd" type="text" class="form-control">
 | 
						|
                        </div>
 | 
						|
                        <div class="col-md-1 col-xs-2">
 | 
						|
                            <input zcfg="[#].stream2.rtsp.auth" type="checkbox" class="switch form-control">
 | 
						|
                        </div>
 | 
						|
                        <div class="col-md-1 col-xs-2">
 | 
						|
                            <input zcfg="[#].stream2.rtsp.enable" type="checkbox" class="switch form-control">
 | 
						|
                        </div>
 | 
						|
                    </div>
 | 
						|
                    <hr style="margin-top:10px; margin-bottom: 10px;"/>
 | 
						|
 | 
						|
                </div>
 | 
						|
            </div>
 | 
						|
 | 
						|
			<div role="tabpanel" class="tab-pane fade in" id="tab2">
 | 
						|
				<div class="row text-center" style="margin-top: 5px;">
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>频道名称</cn>
 | 
						|
						<en>channel name</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						PID
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						TTL
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<cn>流控</cn>
 | 
						|
						<en>Flow Control</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<cn>带宽</cn>
 | 
						|
						<en>Bandwidth</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						PMT PID
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						ServiceID
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						StreamID
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						NetworkID
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						PacketSize
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						RTP Head
 | 
						|
					</div>
 | 
						|
				</div>
 | 
						|
				<hr style="margin-top:5px; margin-bottom: 10px;"/>
 | 
						|
				<div id="templetTS">
 | 
						|
					<div class="row">
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].name" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input zcfg="[#].ts.mpegts_start_pid" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input zcfg="[#].stream.udp.ttl" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input zcfg="[#].stream.udp.flowCtrl" type="checkbox" class="switch form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input zcfg="[#].stream.udp.bandwidth" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input zcfg="[#].ts.mpegts_pmt_start_pid" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input zcfg="[#].ts.mpegts_service_id" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-1">
 | 
						|
							<input zcfg="[#].ts.mpegts_transport_stream_id" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input zcfg="[#].ts.mpegts_original_network_id" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<select zcfg="[#].ts.tsSize" class="form-control">
 | 
						|
								<option value="188">188</option>
 | 
						|
								<option value="376">376</option>
 | 
						|
								<option value="564">564</option>
 | 
						|
								<option value="752">752</option>
 | 
						|
								<option value="940">940</option>
 | 
						|
								<option value="1128">1128</option>
 | 
						|
								<option value="1316">1316</option>
 | 
						|
								<option value="1504">1504</option>
 | 
						|
								<option value="1692">1692</option>
 | 
						|
								<option value="1880">1880</option>
 | 
						|
							</select>
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input zcfg="[#].stream.udp.rtp" type="checkbox" class="switch form-control">
 | 
						|
						</div>
 | 
						|
					</div>
 | 
						|
					<hr style="margin-top:10px; margin-bottom: 10px;"/>
 | 
						|
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
			<div role="tabpanel" class="tab-pane fade in" id="tab3">
 | 
						|
				<div class="row text-center" style="margin-top: 5px;">
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>频道名称</cn>
 | 
						|
						<en>channel name</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>分片长度(秒)</cn><en>Segment length(s)</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>列表长度</cn><en>List length</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>URL前缀</cn>
 | 
						|
						<en>Base url</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>文件名后缀</cn>
 | 
						|
						<en>Name format</en>
 | 
						|
					</div>
 | 
						|
				</div>
 | 
						|
				<hr style="margin-top:5px; margin-bottom: 10px;"/>
 | 
						|
				<div id="templetHLS">
 | 
						|
					<div class="row">
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].name" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].hls.hls_time" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].hls.hls_list_size" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].hls.hls_base_url" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].hls.hls_filename" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
					</div>
 | 
						|
					<hr style="margin-top:10px; margin-bottom: 10px;"/>
 | 
						|
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
			<div role="tabpanel" class="tab-pane fade in thin2" id="tab7">
 | 
						|
				<div class="row text-center" style="margin-top: 5px;">
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>频道名称</cn>
 | 
						|
						<en>channel name</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-4 col-xs-8">
 | 
						|
						<div class="row">
 | 
						|
						<div class="col-md-4">
 | 
						|
							<cn>模式</cn><en>Mode</en>
 | 
						|
						</div>
 | 
						|
						<div class="col-md-4">
 | 
						|
							IP
 | 
						|
						</div>
 | 
						|
						<div class="col-md-4">
 | 
						|
							StreamID
 | 
						|
						</div>
 | 
						|
						</div>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<cn>端口</cn><en>Port</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-1 col-xs-2">
 | 
						|
						<cn>延时</cn><en>Latency</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>密码</cn><en>Password</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>开关</cn>
 | 
						|
						<en>enable</en>
 | 
						|
					</div>
 | 
						|
				</div>
 | 
						|
				<hr style="margin-top:5px; margin-bottom: 10px;"/>
 | 
						|
				<div id="templetSRT">
 | 
						|
					<div class="row">
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].name" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-4 col-xs-8">
 | 
						|
							<div class="row">
 | 
						|
							<div class="col-md-4">
 | 
						|
								<select zcfg="[#].stream.srt.mode" class="form-control">
 | 
						|
									<option value="caller">caller</option>
 | 
						|
									<option value="listener">listener</option>
 | 
						|
									<option value="rendezvous">rendezvous</option>
 | 
						|
								</select>
 | 
						|
							</div>
 | 
						|
							<div class="col-md-4">
 | 
						|
								<input zcfg="[#].stream.srt.ip" type="text" class="form-control">
 | 
						|
							</div>
 | 
						|
							<div class="col-md-4">
 | 
						|
								<input zcfg="[#].stream.srt.streamid" type="text" class="form-control">
 | 
						|
							</div>
 | 
						|
							</div>
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input zcfg="[#].stream.srt.port" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2 text-center">
 | 
						|
							<input zcfg="[#].stream.srt.latency" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4 text-center">
 | 
						|
							<input zcfg="[#].stream.srt.passwd" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4 text-center">
 | 
						|
							<input zcfg="[#].stream.srt.enable" type="checkbox" class="switch form-control">
 | 
						|
						</div>
 | 
						|
					</div>
 | 
						|
					<div class="row" style="margin-top: 5px;">
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-4 col-xs-8">
 | 
						|
							<div class="row">
 | 
						|
							<div class="col-md-4">
 | 
						|
								<select zcfg="[#].stream2.srt.mode" class="form-control">
 | 
						|
									<option value="caller">caller</option>
 | 
						|
									<option value="listener">listener</option>
 | 
						|
									<option value="rendezvous">rendezvous</option>
 | 
						|
								</select>
 | 
						|
							</div>
 | 
						|
							<div class="col-md-4">
 | 
						|
								<input zcfg="[#].stream2.srt.ip" type="text" class="form-control">
 | 
						|
							</div>
 | 
						|
							<div class="col-md-4">
 | 
						|
								<input zcfg="[#].stream2.srt.streamid" type="text" class="form-control">
 | 
						|
							</div>
 | 
						|
							</div>
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2">
 | 
						|
							<input zcfg="[#].stream2.srt.port" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-1 col-xs-2 text-center">
 | 
						|
							<input zcfg="[#].stream2.srt.latency" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4 text-center">
 | 
						|
							<input zcfg="[#].stream2.srt.passwd" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4 text-center">
 | 
						|
							<input zcfg="[#].stream2.srt.enable" type="checkbox" class="switch form-control">
 | 
						|
						</div>
 | 
						|
					</div>
 | 
						|
					<hr style="margin-top:10px; margin-bottom: 10px;"/>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
			<div role="tabpanel" class="tab-pane fade in" id="tab6">
 | 
						|
				<div class="row text-center" style="margin-top: 5px;">
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>频道名称</cn>
 | 
						|
						<en>channel name</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>NDI名称</cn><en>NDI name</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>NDI分组</cn><en>NDI group</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>开关</cn>
 | 
						|
						<en>enable</en>
 | 
						|
					</div>
 | 
						|
				</div>
 | 
						|
				<hr style="margin-top:5px; margin-bottom: 10px;"/>
 | 
						|
				<div id="templetNDI">
 | 
						|
					<div class="row">
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].name" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].ndi.name" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].ndi.group" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4 text-center">
 | 
						|
							<input zcfg="[#].ndi.enable" type="checkbox" class="switch form-control">
 | 
						|
						</div>
 | 
						|
					</div>
 | 
						|
					<hr style="margin-top:10px; margin-bottom: 10px;"/>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
			<div role="tabpanel" class="tab-pane fade in" id="tab5">
 | 
						|
				<div class="row text-center" style="margin-top: 5px;">
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>频道名称</cn>
 | 
						|
						<en>channel name</en>
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						HEVC ID
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						Format
 | 
						|
					</div>
 | 
						|
					<div class="col-md-2 col-xs-4">
 | 
						|
						<cn>上传速度</cn>
 | 
						|
						<en>Push speed</en>
 | 
						|
					</div>
 | 
						|
				</div>
 | 
						|
				<hr style="margin-top:5px; margin-bottom: 10px;"/>
 | 
						|
				<div id="templetPUSH">
 | 
						|
					<div class="row">
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].name" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].stream.push.hevc_id" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<select zcfg="[#].stream.push.format" class="form-control">
 | 
						|
								<option value="auto">auto</option>
 | 
						|
								<option value="flv">flv</option>
 | 
						|
								<option value="rtsp">rtsp</option>
 | 
						|
								<option value="rtp">rtp</option>
 | 
						|
								<option value="mpegts">mpegts</option>
 | 
						|
								<option value="rtp_mpegts">rtp_mpegts</option>
 | 
						|
							</select>
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4 text-center">
 | 
						|
							<span class="info"></span>kb/s
 | 
						|
						</div>
 | 
						|
					</div>
 | 
						|
					<div class="row" style="margin-top: 5px;">
 | 
						|
						<div class="col-md-2 col-xs-4">							
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<input zcfg="[#].stream2.push.hevc_id" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4">
 | 
						|
							<select zcfg="[#].stream2.push.format" class="form-control">
 | 
						|
								<option value="auto">auto</option>
 | 
						|
								<option value="flv">flv</option>
 | 
						|
								<option value="rtsp">rtsp</option>
 | 
						|
								<option value="rtp">rtp</option>
 | 
						|
								<option value="mpegts">mpegts</option>
 | 
						|
								<option value="rtp_mpegts">rtp_mpegts</option>
 | 
						|
							</select>
 | 
						|
						</div>
 | 
						|
						<div class="col-md-2 col-xs-4 text-center">
 | 
						|
							<span class="info"></span>kb/s
 | 
						|
						</div>
 | 
						|
					</div>
 | 
						|
					<hr style="margin-top:10px; margin-bottom: 10px;"/>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
			<div role="tabpanel" class="tab-pane fade in" id="tab4">
 | 
						|
				<div class="row text-center" style="margin-top: 5px;">
 | 
						|
					<div class="col-md-2 col-xs-2">
 | 
						|
						<cn>频道名称</cn>
 | 
						|
						<en>channel name</en>
 | 
						|
					</div>
 | 
						|
                    <div class="col-md-5 col-xs-5">
 | 
						|
                        <div class="row">
 | 
						|
                            <div class="col-md-3 col-xs-3">
 | 
						|
                                <cn>主码流标识</cn>
 | 
						|
                                <en>Main Suffix</en>
 | 
						|
                            </div>
 | 
						|
                            <div class="col-md-9 col-xs-9">
 | 
						|
                                <cn>主流地址</cn>
 | 
						|
                                <en>Main URL</en>
 | 
						|
                            </div>
 | 
						|
                        </div>
 | 
						|
                    </div>
 | 
						|
                    <div class="col-md-5 col-xs-5">
 | 
						|
                        <div class="row">
 | 
						|
                            <div class="col-md-3 col-xs-3">
 | 
						|
                                <cn>辅码流标识</cn>
 | 
						|
                                <en>Sub Suffix</en>
 | 
						|
                            </div>
 | 
						|
                            <div class="col-md-9 col-xs-9">
 | 
						|
                                <cn>辅流地址</cn>
 | 
						|
                                <en>Sub URL</en>
 | 
						|
                            </div>
 | 
						|
                        </div>
 | 
						|
                    </div>
 | 
						|
				</div>
 | 
						|
				<hr style="margin-top:5px; margin-bottom: 10px;"/>
 | 
						|
				<div id="templetURL">
 | 
						|
					<div class="row">
 | 
						|
						<div class="col-md-2 col-xs-2">
 | 
						|
							<input zcfg="[#].name" type="text" class="form-control">
 | 
						|
						</div>
 | 
						|
                        <div class="col-md-5 col-xs-5">
 | 
						|
                            <div class="row">
 | 
						|
                                <div class="col-md-3 col-xs-3">
 | 
						|
                                    <input zcfg="[#].mainSuffix" type="text" class="form-control">
 | 
						|
                                </div>
 | 
						|
                                <div class="col-md-9 col-xs-9">
 | 
						|
                                    <div class="well well-sm mainUrl"></div>
 | 
						|
                                </div>
 | 
						|
                            </div>
 | 
						|
                        </div>
 | 
						|
 | 
						|
                        <div class="col-md-5 col-xs-5">
 | 
						|
                            <div class="row">
 | 
						|
                                <div class="col-md-3 col-xs-3">
 | 
						|
                                    <input zcfg="[#].subSuffix" type="text" class="form-control">
 | 
						|
                                </div>
 | 
						|
                                <div class="col-md-9 col-xs-9">
 | 
						|
                                    <div class="well well-sm subUrl"></div>
 | 
						|
                                </div>
 | 
						|
                            </div>
 | 
						|
                        </div>
 | 
						|
					</div>
 | 
						|
					<hr style="margin-top:10px; margin-bottom: 10px;"/>
 | 
						|
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
			<div class="row">
 | 
						|
				<div class="col-md-12 text-center">
 | 
						|
					<button id="save" type="button" class="btn btn-warning col-xs-4 col-xs-offset-4 col-md-2 col-md-offset-5">
 | 
						|
						<cn>保存</cn>
 | 
						|
						<en>Save</en>
 | 
						|
					</button>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
	</div>
 | 
						|
</div>
 | 
						|
<script src="vendor/switch/bootstrap-switch.js"></script>
 | 
						|
<script src="js/zcfg.js"></script>
 | 
						|
<script>
 | 
						|
	$( function () {
 | 
						|
		navIndex( 2 );
 | 
						|
		var config;
 | 
						|
		var epg;
 | 
						|
		var all = new Object();
 | 
						|
		var all_sub = new Object();
 | 
						|
        var rtspAuth = <?php echo $hardware["function"]["rtspAuth"]?1:-1; ?>;
 | 
						|
		
 | 
						|
		$.fn.bootstrapSwitch.defaults.size = 'small';
 | 
						|
		$.fn.bootstrapSwitch.defaults.onColor = 'warning';
 | 
						|
		$.getJSON( "config/config.json", function ( result ) {
 | 
						|
			config = result;
 | 
						|
			var enabledChn = new Array();
 | 
						|
			for(var i=0;i<config.length;i++){
 | 
						|
			    if(config[i].hasOwnProperty("stream") && rtspAuth>0) {
 | 
						|
                    var rtsp = config[i].stream.rtsp;
 | 
						|
                    if(!rtsp.hasOwnProperty("enable")) {
 | 
						|
                        rtsp = {
 | 
						|
                            enable : rtsp,
 | 
						|
                            name: "admin",
 | 
						|
                            passwd: "admin",
 | 
						|
                            auth: false
 | 
						|
                        }
 | 
						|
                        config[i].stream.rtsp = rtsp;
 | 
						|
                    }
 | 
						|
 | 
						|
                    if(!config[i].stream.hasOwnProperty("suffix"))
 | 
						|
                        config[i].stream.suffix = "stream"+config[i].id;
 | 
						|
                }
 | 
						|
			    if(config[i].hasOwnProperty("stream2") && rtspAuth>0) {
 | 
						|
                    var rtsp = config[i].stream2.rtsp;
 | 
						|
                    if(!rtsp.hasOwnProperty("enable")) {
 | 
						|
                        rtsp = {
 | 
						|
                            enable : rtsp,
 | 
						|
                            name: "admin",
 | 
						|
                            passwd: "admin",
 | 
						|
                            auth: false
 | 
						|
                        }
 | 
						|
                        config[i].stream2.rtsp = rtsp;
 | 
						|
                    }
 | 
						|
                    if(!config[i].stream2.hasOwnProperty("suffix"))
 | 
						|
                        config[i].stream2.suffix = "sub"+config[i].id;
 | 
						|
                }
 | 
						|
				if(config[i].enable || config[i].enable2)
 | 
						|
                    enabledChn.push(config[i]);
 | 
						|
			}
 | 
						|
 | 
						|
			zctemplet( "#templet", enabledChn );
 | 
						|
			zctemplet( "#templetTS", enabledChn );
 | 
						|
			zctemplet( "#templetHLS", enabledChn );
 | 
						|
			zctemplet( "#templetPUSH", enabledChn );
 | 
						|
			zctemplet( "#templetNDI", enabledChn );
 | 
						|
			zctemplet( "#templetSRT", enabledChn );
 | 
						|
			if(rtspAuth > 0)
 | 
						|
                zctemplet( "#templetRTSP", enabledChn );
 | 
						|
			setTimeout(getSpeed,2000);
 | 
						|
			//				$( ".switch" ).bootstrapSwitch();
 | 
						|
 | 
						|
			all.http = config[ 0 ].stream.http;
 | 
						|
			all.hls = config[ 0 ].stream.hls;
 | 
						|
			all.rtmp = config[ 0 ].stream.rtmp;
 | 
						|
			all.rtsp = config[ 0 ].stream.rtsp;
 | 
						|
			all.udp = new Object();
 | 
						|
			all.udp.enable = config[ 0 ].stream.udp.enable;
 | 
						|
			all.udp.ip = config[ 0 ].stream.udp.ip;
 | 
						|
			all.udp.port = config[ 0 ].stream.udp.port + "+";
 | 
						|
			all.push = new Object();
 | 
						|
			all.push.enable = config[ 0 ].stream.push.enable;
 | 
						|
			zcfg( "#all", all );
 | 
						|
 | 
						|
			all_sub.http = config[ 0 ].stream2.http;
 | 
						|
			all_sub.hls = config[ 0 ].stream2.hls;
 | 
						|
			all_sub.rtmp = config[ 0 ].stream2.rtmp;
 | 
						|
			all_sub.rtsp = config[ 0 ].stream2.rtsp;
 | 
						|
			all_sub.udp = new Object();
 | 
						|
			all_sub.udp.enable = config[ 0 ].stream2.udp.enable;
 | 
						|
			all_sub.udp.ip = config[ 0 ].stream2.udp.ip;
 | 
						|
			all_sub.udp.port = config[ 0 ].stream2.udp.port + "+";
 | 
						|
			all_sub.push = new Object();
 | 
						|
			all_sub.push.enable = config[ 0 ].stream2.push.enable;
 | 
						|
			zcfg( "#all_sub", all_sub );
 | 
						|
 | 
						|
		} );
 | 
						|
		
 | 
						|
		function getSpeed()
 | 
						|
		{
 | 
						|
			rpc( "enc.getPushSpeed", null, function ( data ) {
 | 
						|
				for(var i=0;i<data.length;i++)
 | 
						|
				{
 | 
						|
					$("#templetPUSH .info").eq(i).text(data[i]);
 | 
						|
				}
 | 
						|
				setTimeout(getSpeed,2000);
 | 
						|
			} );
 | 
						|
		}
 | 
						|
		
 | 
						|
		function getport(list,type){
 | 
						|
			if(list[2]!=list[0])
 | 
						|
				return ":"+list[2];
 | 
						|
			else if(list[1]!=list[0])
 | 
						|
				return ":"+list[1];
 | 
						|
			else if((type == "http" && list[0] == 80) || (type == "rtsp" && list[0] == 554) || (type == "rtmp" && list[0] == 1935) || (type == "httpts" && list[0] == 8090))
 | 
						|
                return "";
 | 
						|
            else
 | 
						|
				return ":"+list[0];
 | 
						|
		}
 | 
						|
		
 | 
						|
		function transURL(str)
 | 
						|
		{
 | 
						|
			var ret="";
 | 
						|
			var ip=window.location.hostname;
 | 
						|
			var list=str.split("|");
 | 
						|
			for(var i=0;i<list.length;i++){
 | 
						|
				var url=list[i];
 | 
						|
				if(url.indexOf("http")==0){
 | 
						|
					if(url.indexOf("///live")>0){
 | 
						|
						var port=getport(portCfg.http,"http");
 | 
						|
						var port2=getport(portCfg.httpts,"httpts");
 | 
						|
						if(port!="" || port2!=""){
 | 
						|
							if(port!="" && port2=="")
 | 
						|
								port2=":"+portCfg.httpts[0];
 | 
						|
							url=url.replace("///live","//"+ip+port2);	
 | 
						|
						}else{
 | 
						|
							url=url.replace("///","//"+ip+"/");	
 | 
						|
						}
 | 
						|
					}
 | 
						|
					else{
 | 
						|
						var port=getport(portCfg.http,"http");
 | 
						|
						url=url.replace("///","//"+ip+port+"/");	
 | 
						|
					}
 | 
						|
				}
 | 
						|
				else if(url.indexOf("rtmp")==0){
 | 
						|
					var port=getport(portCfg.rtmp,"rtmp");
 | 
						|
					url=url.replace("///","//"+ip+port+"/");	
 | 
						|
				}
 | 
						|
				else if(url.indexOf("rtsp")==0){
 | 
						|
                    var port=getport(portCfg.rtsp,"rtsp");
 | 
						|
				    if(url.indexOf("@/") > 0)
 | 
						|
                        url=url.replace("@/","@"+ip+port+"/");
 | 
						|
				    else
 | 
						|
                        url=url.replace("///","//"+ip+port+"/");
 | 
						|
				}
 | 
						|
				else if(url.indexOf("srt")==0){
 | 
						|
					url=url.replace("//:","//"+ip+":");
 | 
						|
				}
 | 
						|
				
 | 
						|
				ret+=url+"<br>";
 | 
						|
			}
 | 
						|
			return ret;
 | 
						|
		}
 | 
						|
		
 | 
						|
		
 | 
						|
		function getEPG() {
 | 
						|
			rpc( "enc.getEPG", null, function ( data ) {
 | 
						|
				epg = data;
 | 
						|
				zctemplet( "#templetURL", epg );
 | 
						|
				for(var i=0;i<epg.length;i++){
 | 
						|
					$(".mainUrl").eq(i).html(transURL(epg[i].url));
 | 
						|
					$(".subUrl").eq(i).html(transURL(epg[i].url2));
 | 
						|
				}
 | 
						|
			} );
 | 
						|
		}
 | 
						|
		
 | 
						|
		var portCfg;
 | 
						|
		$.getJSON( "config/port.json", function ( result ) {
 | 
						|
			portCfg = result;
 | 
						|
			getEPG();
 | 
						|
		} );
 | 
						|
 | 
						|
		$( "#setAll" ).click( function ( e ) {
 | 
						|
			var ipPlus = false;
 | 
						|
			var portPlus = false;
 | 
						|
			var ipBase1 = "";
 | 
						|
			var ipBase2 = 0;
 | 
						|
			var portBase = 0;
 | 
						|
			if ( all.udp.ip.indexOf( "+" ) > 0 ) {
 | 
						|
				var ip = all.udp.ip;
 | 
						|
				ip = ip.replace( "+", "" );
 | 
						|
				ipPlus = true;
 | 
						|
 | 
						|
				var n = ip.lastIndexOf( "." );
 | 
						|
				ipBase1 = ip.substr( 0, n + 1 );
 | 
						|
				ipBase2 = Number( ip.substr( n + 1 ) );
 | 
						|
			}
 | 
						|
			if ( all.udp.port.toString().indexOf( "+" ) > 0 ) {
 | 
						|
				var port = all.udp.port;
 | 
						|
				port = Number( port.replace( "+", "" ) );
 | 
						|
				portPlus = true;
 | 
						|
				portBase = Number( port );
 | 
						|
			}
 | 
						|
			
 | 
						|
			var ipPlus_2 = false;
 | 
						|
			var portPlus_2 = false;
 | 
						|
			var ipBase1_2 = "";
 | 
						|
			var ipBase2_2 = 0;
 | 
						|
			var portBase_2 = 0;
 | 
						|
			if ( all_sub.udp.ip.indexOf( "+" ) > 0 ) {
 | 
						|
				var ip = all_sub.udp.ip;
 | 
						|
				ip = ip.replace( "+", "" );
 | 
						|
				ipPlus_2 = true;
 | 
						|
 | 
						|
				var n = ip.lastIndexOf( "." );
 | 
						|
				ipBase1_2 = ip.substr( 0, n + 1 );
 | 
						|
				ipBase2_2 = Number( ip.substr( n + 1 ) );
 | 
						|
			}
 | 
						|
			if ( all_sub.udp.port.toString().indexOf( "+" ) > 0 ) {
 | 
						|
				var port = all_sub.udp.port;
 | 
						|
				port = Number( port.replace( "+", "" ) );
 | 
						|
				portPlus_2 = true;
 | 
						|
				portBase_2 = Number( port );
 | 
						|
			}
 | 
						|
			
 | 
						|
			for ( var i = 0; i < config.length; i++ ) {
 | 
						|
				$.extend( true, config[ i ].stream, all );
 | 
						|
				$.extend( true, config[ i ].stream2, all_sub );
 | 
						|
				if ( ipPlus ) {
 | 
						|
					config[ i ].stream.udp.ip = ipBase1 + ( ipBase2 + i );
 | 
						|
				}
 | 
						|
				if ( portPlus ) {
 | 
						|
					config[ i ].stream.udp.port = portBase + i;
 | 
						|
				}
 | 
						|
				
 | 
						|
				if ( ipPlus_2 ) {
 | 
						|
					config[ i ].stream2.udp.ip = ipBase1_2 + ( ipBase2_2 + i );
 | 
						|
				}
 | 
						|
				if ( portPlus_2 ) {
 | 
						|
					config[ i ].stream2.udp.port = portBase_2 + i;
 | 
						|
				}
 | 
						|
			}
 | 
						|
			$( "#save" ).click();
 | 
						|
		} );
 | 
						|
 | 
						|
		$( "#save" ).click( function ( e ) {
 | 
						|
 | 
						|
            var enabledChn = new Array();
 | 
						|
            for(var i=0;i<config.length;i++) {
 | 
						|
                if(config[i].enable || config[i].enable2)
 | 
						|
                    enabledChn.push(config[i]);
 | 
						|
 | 
						|
                for(var j=0;j<epg.length;j++) {
 | 
						|
                    if(config[i].id == epg[j].id) {
 | 
						|
                        if(epg[j].hasOwnProperty("mainSuffix") && epg[j].hasOwnProperty("subSuffix")) {
 | 
						|
                            config[i].stream.suffix = epg[j].mainSuffix;
 | 
						|
                            config[i].stream2.suffix = epg[j].subSuffix;
 | 
						|
                            break;
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            zcfg( "#templet", enabledChn );
 | 
						|
            if(rtspAuth > 0) {
 | 
						|
                zctemplet( "#templetRTSP", enabledChn );
 | 
						|
            }
 | 
						|
 | 
						|
			rpc( "enc.update", [ JSON.stringify( config, null, 2 ) ], function ( data ) {
 | 
						|
				if ( typeof ( data.error ) != "undefined" ) {
 | 
						|
					htmlAlert( "#alert", "danger", "<cn>保存设置失败!</cn><en>Save config failed!</en>", "", 2000 );
 | 
						|
				} else {
 | 
						|
					htmlAlert( "#alert", "success", "<cn>保存设置成功!</cn><en>Save config success!</en>", "", 2000 );
 | 
						|
				}
 | 
						|
				getEPG();
 | 
						|
			} );
 | 
						|
		} );
 | 
						|
 | 
						|
		$( "#setAllGroup" ).click( function ( e ) {
 | 
						|
			grpShow();
 | 
						|
		} );
 | 
						|
 | 
						|
 | 
						|
		$( "#grpSync" ).click( function ( e ) {
 | 
						|
			var ipPlus = false;
 | 
						|
			var portPlus = false;
 | 
						|
			var ipBase1 = "";
 | 
						|
			var ipBase2 = 0;
 | 
						|
			var portBase = 0;
 | 
						|
			if ( all.udp.ip.indexOf( "+" ) > 0 ) {
 | 
						|
				var ip = all.udp.ip;
 | 
						|
				ip = ip.replace( "+", "" );
 | 
						|
				ipPlus = true;
 | 
						|
 | 
						|
				var n = ip.lastIndexOf( "." );
 | 
						|
				ipBase1 = ip.substr( 0, n + 1 );
 | 
						|
				ipBase2 = Number( ip.substr( n + 1 ) );
 | 
						|
			}
 | 
						|
			if ( all.udp.port.toString().indexOf( "+" ) > 0 ) {
 | 
						|
				var port = all.udp.port;
 | 
						|
				port = Number( port.replace( "+", "" ) );
 | 
						|
				portPlus = true;
 | 
						|
				portBase = Number( port );
 | 
						|
			}
 | 
						|
			
 | 
						|
			var ipPlus_2 = false;
 | 
						|
			var portPlus_2 = false;
 | 
						|
			var ipBase1_2 = "";
 | 
						|
			var ipBase2_2 = 0;
 | 
						|
			var portBase_2 = 0;
 | 
						|
			if ( all_sub.udp.ip.indexOf( "+" ) > 0 ) {
 | 
						|
				var ip = all_sub.udp.ip;
 | 
						|
				ip = ip.replace( "+", "" );
 | 
						|
				ipPlus_2 = true;
 | 
						|
 | 
						|
				var n = ip.lastIndexOf( "." );
 | 
						|
				ipBase1_2 = ip.substr( 0, n + 1 );
 | 
						|
				ipBase2_2 = Number( ip.substr( n + 1 ) );
 | 
						|
			}
 | 
						|
			if ( all_sub.udp.port.toString().indexOf( "+" ) > 0 ) {
 | 
						|
				var port = all_sub.udp.port;
 | 
						|
				port = Number( port.replace( "+", "" ) );
 | 
						|
				portPlus_2 = true;
 | 
						|
				portBase_2 = Number( port );
 | 
						|
			}
 | 
						|
			
 | 
						|
			var cfg = new Object();
 | 
						|
			var cfg2 = new Object();
 | 
						|
			var map = new Object();
 | 
						|
			$.extend( cfg, all );
 | 
						|
			$.extend( cfg2, all_sub );
 | 
						|
			var k = grpList.length;
 | 
						|
			for ( var i = 0; i < grpList.length; i++ ) {
 | 
						|
				grpSetStatus( i, 0 );
 | 
						|
				if ( ipPlus ) {
 | 
						|
					cfg.udp.ip = ipBase1 + ( ipBase2 + i * 20 ) + "+";
 | 
						|
				}
 | 
						|
				if ( portPlus ) {
 | 
						|
					cfg.udp.port = ( portBase + i * 20 ) + "+";
 | 
						|
				}
 | 
						|
				
 | 
						|
				if ( ipPlus_2 ) {
 | 
						|
					cfg2.udp.ip = ipBase1_2 + ( ipBase2_2 + i * 20 ) + "+";
 | 
						|
				}
 | 
						|
				if ( portPlus_2 ) {
 | 
						|
					cfg2.udp.port = ( portBase_2 + i * 20 ) + "+";
 | 
						|
				}
 | 
						|
				map.cfg=cfg;
 | 
						|
				map.cfg2=cfg2;
 | 
						|
				
 | 
						|
				rpc( "group.callSetStream", [ grpList[ i ].mac, map ], function ( data, index ) {
 | 
						|
					grpSetStatus( index, data ? 1 : 2 );
 | 
						|
					k--;
 | 
						|
					if ( k == 0 ) {
 | 
						|
						$.getJSON( "config/config.json", function ( result ) {
 | 
						|
							config = result;
 | 
						|
							zcfg( "#templet", config );
 | 
						|
						} );
 | 
						|
					}
 | 
						|
				}, i );
 | 
						|
			}
 | 
						|
		} );
 | 
						|
 | 
						|
	} );
 | 
						|
</script>
 | 
						|
<?php
 | 
						|
include( "foot.php" );
 | 
						|
?>
 |