Самый эффективный плагин для воспроизведения потоков Rtsp на веб-странице с хорошей совместимостью с браузером

Вот обзор моего кода. Пользователь нажимает кнопку записи, и он попадает на сервер, чтобы запустить поток наблюдения, и он возвращает URL-адрес rtsp, который я хочу воспроизвести на веб-сайте.

Я пробовал плагин vlc, но это кажется ненадежным, следующий код создает упомянутые ниже проблемы.

Любые другие идеи по реализации этой функциональности более чем приветствуются.

  xmlhttp.onreadystatechange  = function()
    {
     if (xmlhttp.readyState == 4) {
       if(xmlhttp.status == 200) {
         res_array = xmlhttp.responseText.split("#");
         session_id = res_array[0];
        alert(res_array.length);
         if (res_array.length == 4)
         {
             document.getElementById("jsession").innerHTML = xmlhttp.responseText;
             rstp_url = res_array[1];
             jsession_id = res_array[2];
             var vid_tag = '<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"';
             vid_tag += ' codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab"' ;
             vid_tag += ' width="320" height="240" id="vlc" events="True"> <param name="Src" value=" ' + rstp_url +' " /> ';
             vid_tag += ' <param name="ShowDisplay" value="True" /> <param name="AutoLoop" value="False" /><param name="AutoPlay" value="True" />' ;
             vid_tag += '<EMBED pluginspage="http://www.videolan.org" type="application/x-vlc-plugin" progid="VideoLAN.VLCPlugin.2" width="320" height="240"' ;
             vid_tag +=' autoplay="yes" loop="no" target="'+rstp_url+'" name="vlc"> </EMBED></OBJECT>';
             document.getElementById("StopRecording").disabled = false;
             document.getElementById("StartRecording").disabled = true;
             document.getElementById("StopPlayback").visible = false;
             document.getElementById("Playback").disabled = true;
             alert(vid_tag);
             document.getElementById("video_handler").innerHTML = vid_tag;
             document.getElementById("jsession").innerHTML = xmlhttp.responseText;//Update the HTML Form element
         }
         else
            {
             alert("Make sure usename,password and deviceref is correct");
            }
       }
       else {
          alert("Error during AJAX call. Please try again");
       }
     }
};

У меня есть следующие проблемы.

  • Не работает в IE6.
  • Воспроизведение потока ненадежно. Иногда он играет, а иногда нет. Кажется, единственный правильный способ исправить это - добавить окно предупреждения сразу после длины res_array, если установите флажок
  • Даже при попытке воспроизвести источник звука появляется черный ящик для воспроизведения видео.

P.S. Будет ли это проще, если я попробую использовать HTML5 и знаю о таких фреймворках, как jquery, но я не могу использовать его в этом проекте.

5
задан elricL 2 June 2011 в 06:46
поделиться