]> git.sesse.net Git - vlc/blob - share/lua/http/dialogs/create_stream.html
luahttp: fix document parsing with inline javascript
[vlc] / share / lua / http / dialogs / create_stream.html
1 <script language="javascript" type="text/javascript">
2 //<![CDATA[
3         $(function(){
4                 $('#stream_out_method').change(function(){
5                         $('#output_options').empty();
6                         switch($(this).val()){
7                                 case 'file':
8                                         var options     =       $('#file_options').clone();
9                                         break;
10                                 case 'http':
11                                         var options     =       $('#net_options').clone();
12                                         break;
13                                 case 'mmsh':
14                                 case 'rtp':
15                                 case 'udp':
16                                         var options     =       $('#net_options').clone();
17                                         $('#stream_out_file_',options).val('');
18                                         break;
19                         }
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));
23                         });
24                         $(options).css({
25                                 'visibility':'visible',
26                                 'display':'block'
27                         })
28                         $(options).appendTo('#output_options');
29                 });
30                 $('#stream_out_mux').change(function(){
31                         if($(this).val()=='ffmpeg'){
32                                 $('#stream_out_mux_opts').val('{mux=flv}');
33                         }else{
34                                 $('#stream_out_mux_opts').val('');
35                         }
36                 });
37                 $('#window_create_stream').dialog({
38                         autoOpen: false,
39                         width:800,
40                         modal: true,
41                         buttons:{
42                                 "Create":function(){
43                                         var e   =       false;
44                                         $('input',$(this)).removeClass('ui-state-error');
45                                         $('#stream_error_container').css({
46                                                 'visibility':'hidden',
47                                                 'display':'none'
48                                         });
49                                         if(!$('#stream_name').val()){
50                                                 $('#stream_name').addClass('ui-state-error');
51                                                 e       =       true;
52                                         }
53                                         if(!$('#stream_input').val()){
54                                                 $('#stream_input').addClass('ui-state-error');
55                                                 e       =       true;
56                                         }
57
58                                         if($('#stream_out_method').val()!='file' && !$('#stream_out_port').val()){
59                                                 $('#stream_out_port').addClass('ui-state-error');
60                                                 e       =       true;
61                                         }
62                                         if($('#stream_out_method').val()!='file' && !$('#stream_out_dest').val()){
63                                                 $('#stream_out_dest').addClass('ui-state-error');
64                                                 e       =       true;
65                                         }
66
67                                         if($('#stream_out_method').val()=='file' && !$('#stream_out_filename').val()){
68                                                 $('#stream_out_filename').addClass('ui-state-error');
69                                                 e       =       true;
70                                         }
71                                         if(e){
72                                                 $('#stream_error_message').empty();
73                                                 $('#stream_error_message').append('One or more fields require attention.');
74                                                 $('#stream_error_container').css({
75                                                         'visibility':'visible',
76                                                         'display':'block'
77                                                 })
78                                         }else{
79                                                 sendVLMCmd(buildStreamCode());
80                                                 $(this).dialog('close');
81                                         }
82                                 },
83                                 "Cancel":function(){
84                                         $(this).dialog('close');
85                                 }
86                         }
87                 });
88                 $('#button_input').click(function(){
89                         browse_target   =       '#stream_input';
90                         browse();
91                         $('#window_browse').dialog('open');
92                 });
93                 $('#button_in_screen').click(function(){
94                         $('#stream_input').val('screen://');
95                 });
96         });
97         function buildStreamCode(){
98                 var name                =       $('#stream_name').val().replace(' ','_');
99                 var infile              =       $('#stream_input').val();
100
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');
106
107                 var acodec              =       $('#stream_acodec').val();
108                 var ab                  =       $('#stream_ab').val();
109                 var srate               =       $('#stream_samplerate').val();
110                 var channels    =       $('#stream_channels').val();
111
112                 var scodec              =       $('#stream_scodec').val() && !$('#stream_soverlay').checked ? ','+$('#stream_scodec').val() : '';
113                 var soverlay    =       $('#stream_soverlay').is(':checked') ? ',soverlay' : '';
114
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()+'}' : '';
118
119                 if(outmethod=='file'){
120                         var filename    =       $('#stream_out_filename').val();
121                 }else{
122                         var outport             =       $('#stream_out_port').val();
123                         var outdest             =       $('#stream_out_dest').val();
124                         var outfile             =       $('#stream_out_file').val();
125                 }
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+'}';
130
131                 return inCode+transCode+outCode;
132         }
133 //]]>
134 </script>
135 <div id="window_create_stream" title="Create Stream">
136         <table width="100%">
137                 <tr>
138                         <td style="text-align:right" valign="top">
139                                 <h5>Stream Name</h5>
140                         </td>
141                         <td colspan="5" valign="top">
142                                 <input type="text" name="stream_name" id="stream_name" value=""/>
143                         </td>
144                 </tr>
145                 <tr>
146                         <th colspan="2" valign="top">
147                                 <h5>Video</h5>
148                         </th>
149                         <th colspan="2" valign="top">
150                                 <h5>Audio</h5>
151                         </th>
152                         <th colspan="2" valign="top">
153                                 <h5>Subtitles</h5>
154                         </th>
155                         <th colspan="2" valign="top">
156                                 <h5>Output</h5>
157                         </th>
158                 </tr>
159                 <tr>
160                         <td style="text-align:right" valign="top">Video Codec</td>
161                         <td valign="top">
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>
176                                 </select>
177                         </td>
178                         <td style="text-align:right" valign="top">Audio Codec</td>
179                         <td valign="top">
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>
191                                 </select>
192                         </td>
193                         <td style="text-align:right" valign="top">Subtitle Codec</td>
194                         <td valign="top">
195                                 <select name="stream_scodec" id="stream_scodec">
196                                         <option value="">none</option>
197                                         <option value="dvbs">dvbs</option>
198                                 </select>
199                         </td>
200                         <td style="text-align:right" valign="top">Output Method</td>
201                         <td valign="top">
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>
208                                 </select>
209                         </td>
210                 </tr>
211                 <tr>
212                         <td style="text-align:right" valign="top">Video Bit Rate</td>
213                         <td valign="top">
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>
229                                 </select>
230                         </td>
231                         <td style="text-align:right" valign="top">Audio Bit Rate</td>
232                         <td valign="top">
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>
243                                 </select>
244                         </td>
245                         <td style="text-align:right" valign="top">Overlay</td>
246                         <td valign="top">
247                                 <input type="checkbox" name="stream_soverlay" id="stream_soverlay" value="1" />
248                         </td>
249                         <td style="text-align:right" valign="top">Multiplexer</td>
250                         <td valign="top">
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>
262                                 </select>
263                         </td>
264                 </tr>
265                 <tr>
266                         <td style="text-align:right" valign="top">Video FPS</td>
267                         <td valign="top">
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>
279                                 </select>
280                         </td>
281                         <td style="text-align:right" valign="top">Audio Sample Rate</td>
282                         <td valign="top">
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>
294                                 </select>
295                         </td>
296                         <td colspan="2" valign="top">&nbsp;</td>
297                         <td style="text-align:right" valign="top">MUX Options</td>
298                         <td valign="top">
299                                 <input type="text" name="stream_out_mux_opts" id="stream_out_mux_opts" value="{mux=flv}" />
300                         </td>
301                 </tr>
302                 <tr>
303                         <td style="text-align:right" valign="top">Video Scale</td>
304                         <td valign="top">
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>
314                                 </select>
315                         </td>
316                         <td style="text-align:right" valign="top">Audio Channels</td>
317                         <td valign="top">
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>
323                                 </select>
324                         </td>
325                         <td colspan="2" valign="top">&nbsp;</td>
326                         <td colspan="2" rowspan="2" valign="top">
327                                 <div id="output_options">
328                                                 <table>
329                                                         <tr>
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>
332                                                         </tr>
333                                                         <tr>
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>
336                                                         </tr>
337                                                         <tr>
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>
340                                                         </tr>
341                                                 </table>
342                                 </div>
343                         </td>
344                 </tr>
345                 <tr>
346                         <td valign="top" style="text-align:right">Deinterlace</td>
347                         <td valign="top">
348                                 <input type="checkbox" name="stream_deinterlace" id="stream_deinterlace" value="1" />
349                         </td>
350                         <td colspan="2" valign="top">&nbsp;</td>
351                         <td colspan="2" valign="top">&nbsp;</td>
352                 </tr>
353                 <tr>
354                         <td style="text-align:right" colspan="2" valign="top">
355                                 Input Media
356                         </td>
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>
361                         </td>
362                 </tr>
363         </table>
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>
368                 </div>
369         </div>
370 </div>
371 <div id="net_options" style="display:none;visibility: hidden;">
372         <table>
373                 <tr>
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>
376                 </tr>
377                 <tr>
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>
380                 </tr>
381                 <tr>
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>
384                 </tr>
385         </table>
386 </div>
387 <div id="file_options" style="display:none;visibility: hidden;">
388         <table>
389                 <tr>
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>
392                 </tr>
393         </table>
394 </div>