1 <script language=
"javascript" type=
"text/javascript">
4 $('#stream_out_method').change(function(){
5 $('#output_options').empty();
8 var options
= $('#file_options').clone();
11 var options
= $('#net_options').clone();
16 var options
= $('#net_options').clone();
17 $('#stream_out_file_',options
).val('');
20 $('[id]',options
).each(function(){
21 $(this).attr('id',$(this).attr('id').substr(0,$(this).attr('id').length
-1));
22 $(this).attr('name',$(this).attr('name').substr(0,$(this).attr('name').length
-1));
25 'visibility':'visible',
28 $(options
).appendTo('#output_options');
30 $('#stream_out_mux').change(function(){
31 if($(this).val()=='ffmpeg'){
32 $('#stream_out_mux_opts').val('{mux=flv}');
34 $('#stream_out_mux_opts').val('');
37 $('#window_create_stream').dialog({
44 $('input',$(this)).removeClass('ui-state-error');
45 $('#stream_error_container').css({
46 'visibility':'hidden',
49 if(!$('#stream_name').val()){
50 $('#stream_name').addClass('ui-state-error');
53 if(!$('#stream_input').val()){
54 $('#stream_input').addClass('ui-state-error');
58 if($('#stream_out_method').val()!='file' && !$('#stream_out_port').val()){
59 $('#stream_out_port').addClass('ui-state-error');
62 if($('#stream_out_method').val()!='file' && !$('#stream_out_dest').val()){
63 $('#stream_out_dest').addClass('ui-state-error');
67 if($('#stream_out_method').val()=='file' && !$('#stream_out_filename').val()){
68 $('#stream_out_filename').addClass('ui-state-error');
72 $('#stream_error_message').empty();
73 $('#stream_error_message').append('One or more fields require attention.');
74 $('#stream_error_container').css({
75 'visibility':'visible',
79 sendVLMCmd(buildStreamCode());
80 $(this).dialog('close');
84 $(this).dialog('close');
88 $('#button_input').click(function(){
89 browse_target
= '#stream_input';
91 $('#window_browse').dialog('open');
93 $('#button_in_screen').click(function(){
94 $('#stream_input').val('screen://');
97 function buildStreamCode(){
98 var name
= $('#stream_name').val().replace(' ','_');
99 var infile
= $('#stream_input').val();
101 var vcodec
= $('#stream_vcodec').val();
102 var vb
= $('#stream_vb').val();
103 var fps
= $('#stream_fps').val();
104 var scale
= $('#stream_scale').val();
105 var dlace
= $('#stream_deinterlace').is(':checked');
107 var acodec
= $('#stream_acodec').val();
108 var ab
= $('#stream_ab').val();
109 var srate
= $('#stream_samplerate').val();
110 var channels
= $('#stream_channels').val();
112 var scodec
= $('#stream_scodec').val() && !$('#stream_soverlay').checked
? ','+$('#stream_scodec').val() : '';
113 var soverlay
= $('#stream_soverlay').is(':checked') ? ',soverlay' : '';
115 var outmethod
= $('#stream_out_method').val();
116 var mux
= $('#stream_out_mux').val();
117 var muxoptions
= $('#stream_out_mux_opts').val() ? '{'+$('#stream_out_mux_opts').val()+'}' : '';
119 if(outmethod
=='file'){
120 var filename
= $('#stream_out_filename').val();
122 var outport
= $('#stream_out_port').val();
123 var outdest
= $('#stream_out_dest').val();
124 var outfile
= $('#stream_out_file').val();
126 var dest
= outmethod
=='file' ? filename
: (outfile
? outdest
+':'+outport
+'/'+outfile
: outdest
+':'+outport
);
127 var inCode
= 'new '+name
+' broadcast enabled input "'+infile
+'" ';
128 var transCode
= 'output #transcode{vcodec='+vcodec
+',vb='+vb
+',fps='+fps
+',scale='+scale
+',acodec='+acodec
+',ab='+ab
+',samplerate='+srate
+',channels='+channels
+scodec
+soverlay
+'}';
129 var outCode
= ':std{access='+outmethod
+',mux='+mux
+muxoptions
+',dst='+dest
+'}';
131 return inCode
+transCode
+outCode
;
135 <div id=
"window_create_stream" title=
"Create Stream">
138 <td style=
"text-align:right" valign=
"top">
141 <td colspan=
"5" valign=
"top">
142 <input type=
"text" name=
"stream_name" id=
"stream_name" value=
""/>
146 <th colspan=
"2" valign=
"top">
149 <th colspan=
"2" valign=
"top">
152 <th colspan=
"2" valign=
"top">
155 <th colspan=
"2" valign=
"top">
160 <td style=
"text-align:right" valign=
"top">Video Codec
</td>
162 <select name=
"stream_vcodec" id=
"stream_vcodec">
163 <option value=
"FLV1">FLV1
</option>
164 <option value=
"mp1v">mp1v
</option>
165 <option value=
"mp2v">mp2v
</option>
166 <option value=
"mp4v">mp4v
</option>
167 <option value=
"DIV1">DIV1
</option>
168 <option value=
"DIV2">DIV2
</option>
169 <option value=
"DIV3">DIV3
</option>
170 <option value=
"H263">H263
</option>
171 <option value=
"H264">H264
</option>
172 <option value=
"WMV1">WMV1
</option>
173 <option value=
"WMV2">WMV2
</option>
174 <option value=
"MJPG">MJPG
</option>
175 <option value=
"theo">theo
</option>
178 <td style=
"text-align:right" valign=
"top">Audio Codec
</td>
180 <select name=
"stream_acodec" id=
"stream_acodec">
181 <option value=
"mp3">mp3
</option>
182 <option value=
"mpga">mpga
</option>
183 <option value=
"mp2a">mp2a
</option>
184 <option value=
"mp4a">mp4a
</option>
185 <option value=
"a52">a52
</option>
186 <option value=
"vorb">vorb
</option>
187 <option value=
"flac">flac
</option>
188 <option value=
"spx">spx
</option>
189 <option value=
"s16l">s16l
</option>
190 <option value=
"fl32">fl32
</option>
193 <td style=
"text-align:right" valign=
"top">Subtitle Codec
</td>
195 <select name=
"stream_scodec" id=
"stream_scodec">
196 <option value=
"">none
</option>
197 <option value=
"dvbs">dvbs
</option>
200 <td style=
"text-align:right" valign=
"top">Output Method
</td>
202 <select name=
"stream_out_method" id=
"stream_out_method">
203 <option value=
"http">HTTP
</option>
204 <option value=
"file">File
</option>
205 <option value=
"mmsh">MMSH
</option>
206 <option value=
"rtp">RTP
</option>
207 <option value=
"udp">UDP
</option>
212 <td style=
"text-align:right" valign=
"top">Video Bit Rate
</td>
214 <select name=
"stream_vb" id=
"stream_vb">
215 <option value=
"4096">4096</option>
216 <option value=
"3072">3072</option>
217 <option value=
"2048">2048</option>
218 <option value=
"1024">1024</option>
219 <option value=
"768">768</option>
220 <option value=
"512">512</option>
221 <option value=
"384">384</option>
222 <option value=
"256">256</option>
223 <option value=
"192">192</option>
224 <option value=
"128">128</option>
225 <option value=
"96">96</option>
226 <option value=
"64">64</option>
227 <option value=
"32">32</option>
228 <option value=
"16">16</option>
231 <td style=
"text-align:right" valign=
"top">Audio Bit Rate
</td>
233 <select name=
"stream_ab" id=
"stream_ab">
234 <option value=
"512">512</option>
235 <option value=
"384">384</option>
236 <option value=
"256">256</option>
237 <option value=
"192">192</option>
238 <option value=
"128">128</option>
239 <option value=
"96">96</option>
240 <option value=
"64">64</option>
241 <option value=
"32">32</option>
242 <option value=
"16">16</option>
245 <td style=
"text-align:right" valign=
"top">Overlay
</td>
247 <input type=
"checkbox" name=
"stream_soverlay" id=
"stream_soverlay" value=
"1" />
249 <td style=
"text-align:right" valign=
"top">Multiplexer
</td>
251 <select name=
"stream_out_mux" id=
"stream_out_mux">
252 <option value=
"ts">MPEG TS
</option>
253 <option value=
"ps">MPEG PS
</option>
254 <option value=
"mpeg1">MPEG
1</option>
255 <option value=
"ogg">OGG
</option>
256 <option value=
"asf">ASF
</option>
257 <option value=
"mp4">MP4
</option>
258 <option value=
"mov">MOV
</option>
259 <option value=
"wav">WAV
</option>
260 <option value=
"raw">Raw
</option>
261 <option value=
"ffmpeg" selected=
"selected">FFMPEG
</option>
266 <td style=
"text-align:right" valign=
"top">Video FPS
</td>
268 <select name=
"stream_fps" id=
"stream_fps">
269 <option value=
"300">300</option>
270 <option value=
"120">120</option>
271 <option value=
"100">100</option>
272 <option value=
"72">72</option>
273 <option value=
"60">60</option>
274 <option value=
"50">50</option>
275 <option value=
"48">48</option>
276 <option value=
"30">30</option>
277 <option value=
"25" selected=
"selected">25</option>
278 <option value=
"24">24</option>
281 <td style=
"text-align:right" valign=
"top">Audio Sample Rate
</td>
283 <select name=
"stream_samplerate" id=
"stream_samplerate">
284 <option value=
"192000">192 KHz
</option>
285 <option value=
"96000">96 KHz
</option>
286 <option value=
"50000">50 KHz
</option>
287 <option value=
"48000">48 KHz
</option>
288 <option value=
"44100" selected=
"selected">44 KHz
</option>
289 <option value=
"32000">32 KHz
</option>
290 <option value=
"22050">22 KHz
</option>
291 <option value=
"16000">16 KHz
</option>
292 <option value=
"11025">11 KHz
</option>
293 <option value=
"8000">8 KHz
</option>
296 <td colspan=
"2" valign=
"top"> </td>
297 <td style=
"text-align:right" valign=
"top">MUX Options
</td>
299 <input type=
"text" name=
"stream_out_mux_opts" id=
"stream_out_mux_opts" value=
"{mux=flv}" />
303 <td style=
"text-align:right" valign=
"top">Video Scale
</td>
305 <select name=
"stream_scale" id=
"stream_scale">
306 <option value=
"0.25">25%
</option>
307 <option value=
"0.5">50%
</option>
308 <option value=
"0.75">75%
</option>
309 <option selected=
"selected" value=
"1">100%
</option>
310 <option value=
"1.25">125%
</option>
311 <option value=
"1.5">150%
</option>
312 <option value=
"1.75">175%
</option>
313 <option value=
"2">200%
</option>
316 <td style=
"text-align:right" valign=
"top">Audio Channels
</td>
318 <select name=
"stream_channels" id=
"stream_channels" >
319 <option value=
"1">1</option>
320 <option value=
"2" selected=
"selected">2</option>
321 <option value=
"4">4</option>
322 <option value=
"6">6</option>
325 <td colspan=
"2" valign=
"top"> </td>
326 <td colspan=
"2" rowspan=
"2" valign=
"top">
327 <div id=
"output_options">
330 <td style=
"text-align:right" valign=
"top">Output Port
</td>
331 <td valign=
"top"><input type=
"text" name=
"stream_out_port" id=
"stream_out_port" value=
"8081" /></td>
334 <td style=
"text-align:right" valign=
"top">Output Destination
</td>
335 <td><input type=
"text" name=
"stream_out_dest" id=
"stream_out_dest" value=
"0.0.0.0" /></td>
338 <td style=
"text-align:right" valign=
"top">Output File
</td>
339 <td valign=
"top"><input type=
"text" name=
"stream_out_file" id=
"stream_out_file" value=
"stream.flv" /></td>
346 <td valign=
"top" style=
"text-align:right">Deinterlace
</td>
348 <input type=
"checkbox" name=
"stream_deinterlace" id=
"stream_deinterlace" value=
"1" />
350 <td colspan=
"2" valign=
"top"> </td>
351 <td colspan=
"2" valign=
"top"> </td>
354 <td style=
"text-align:right" colspan=
"2" valign=
"top">
357 <td colspan=
"6" valign=
"top">
358 <input type=
"text" name=
"stream_input" id=
"stream_input" value=
"" size=
"50" />
359 <div id=
"button_input" class=
"button icon ui-widget ui-state-default" title=
"Media File" opendialog=
"window_browse"><span class=
"ui-icon ui-icon-eject"></span></div>
360 <div id=
"button_in_screen" class=
"button icon ui-widget ui-state-default" title=
"Capture Screen" ><span class=
"ui-icon ui-icon-contact"></span></div>
364 <div class=
"ui-widget" id=
"stream_error_container" style=
"display:none;visibility: hidden;">
365 <div class=
"ui-state-error ui-corner-all" style=
"padding: 0 .7em;">
366 <p><span class=
"ui-icon ui-icon-alert" style=
"float: left; margin-right: .3em;"></span>
367 <strong>Error:
</strong> <span id=
"stream_error_message">Sample ui-state-error style.
</span></p>
371 <div id=
"net_options" style=
"display:none;visibility: hidden;">
374 <td style=
"text-align:right" valign=
"top">Output Port
</td>
375 <td valign=
"top"><input type=
"text" name=
"stream_out_port_" id=
"stream_out_port_" value=
"8081" /></td>
378 <td style=
"text-align:right" valign=
"top">Output Destination
</td>
379 <td valign=
"top"><input type=
"text" name=
"stream_out_dest_" id=
"stream_out_dest_" value=
"0.0.0.0" /></td>
382 <td style=
"text-align:right" valign=
"top">Output File
</td>
383 <td valign=
"top"><input type=
"text" name=
"stream_out_file_" id=
"stream_out_file_" value=
"stream.flv" /></td>
387 <div id=
"file_options" style=
"display:none;visibility: hidden;">
390 <td style=
"text-align:right" valign=
"top">File Name
</td>
391 <td valign=
"top"><input type=
"text" name=
"stream_out_filename_" id=
"stream_out_filename_"/></td>