Autor Zpráva
svito007
Profil
Ahojte,

mám stream, ktorý prístupný len s menom a heslo v tvare http://meno:heslo@ip:8080/ISAPI/Streaming/channels/102/httppreview a potreboval by som ho dostať na web, tak aby ale nebolo vidieť to meno a heslo. Pozeral som na internete ale nejak sa mi nič nepodarilo nájsť.

Vedeli by ste mi pomôcť?
NoxOne
Profil
Ahoj,

použij CURL metodu GET

mrkni na tohle to by ti mělo pomoci:
gist.github.com/lesstif/277a20292910bf46528f
Keeehi
Profil
NoxOne:
Nebude trochu problém v tom, že to je stream?
svito007
Profil
NoxOne:

To nefunguje, ono je problém to v tomto tvare pustiť aj v nejakom prehrávací, ani len cez iframe to nezoberie, len bez hesiel s tým, že ich potom musím zadať. Skúsil som to aj cez HTML5 prehrávač a nezobrazí nič.
NoxOne
Profil
Není v tom problém, řešil jsem takto přístup na firmu abych viděl co dělají zaměstnanci.
nástřel:

$url = adresa;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) {
    echo $data;
    ob_flush();
    flush();
    return strlen($data);
});
curl_exec($ch);
curl_close($ch);

Když jsem s tím zápasil tak mi pomohl https://stackoverflow.com

tenkrát se to tam řešilo. Budeš muset hledat.


Tak jsem to našel:

<?php

 
class VideoStream
{
 private $login = 'login';
 private $pass = 'heslo';
 private $buffersize = 1024 * 1024;
 
 //funkce pro stream curl
 public function callback($curl, $data)
 {
 ob_get_clean();
 if (($data === false) || ($data == null))
 {
 throw new \Exception (curl_error($curl) . " " . curl_errno($curl));
 }
 $length = strlen($data);
 header("Content-type: video/mp4"); //tvůj video formát
 header("Transfer-encoding: chunked");
 header("Connection: keep-alive");
 header("Cache-Control: max-age=2592000, public");
 header("Expires: ".gmdate('D, d M Y H:i:s', time()+2592000) . ' GMT');
 header("Last-Modified: ".gmdate('D, d M Y H:i:s', @filemtime($this->url)) . ' GMT' );
 echo $data;
 ob_flush();
 flush();
 return $length;
 }
 
 // Klíčování streamu
 public function getStream($url)
 {
 $curl = curl_init();
 curl_setopt_array($curl, array(
 CURLOPT_URL => $url,
 CURLOPT_HEADER => 0,
 CURLOPT_USERPWD => "$this->login:$this->pass", //autorizace
 CURLOPT_FOLLOWLOCATION => 1,
 CURLOPT_BUFFERSIZE => $this->buffersize,
 CURLOPT_WRITEFUNCTION => array($this, "callback")
 )
 );
 curl_exec($curl);
 curl_close($curl);
 }
}
svito007
Profil
NoxOne:
Diik vyskúšal som to a vyzerá, že to funguje.
Ešte raz diik za pomoc.
NoxOne
Profil
To jsem rád že ti to maká.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0