Autor Zpráva
Drue
Profil *
Ahoj,
měl bych jeden takový problém.
Na webu mám webkameru, která se aktualizuje každé dvě vteřiny.
Bohužel nemám veřejnou ip a proto se snímky nahrávají na FTP server.
Jedná se o normální webkameru připojenou k počítači.

Problém je v tom, že když se snímky aktualizují, načte se někdy obrázek, který se ještě celý nenahrál na FTP a zobrazí se třeba jen polovina obrázku. Je nějáká možnost jak zjistit, že se dokončil už upload a až potom soubor umožnit načíst ?
Podle speedtestu je upload kolem 4 Mbps a tak by s připojením problém být neměl.
Obrázky jsou velké 64 kB. Odesílám je pomocí programu BooruWebCam.
Zkoušel jsem už i jiné, ale buď mi nevyhovoval minimální čas 10s nebo se mi nepodařilo program připojit na FTP. (Případ programu Kamera 2004)
Webkamera je na webu s hostingem od wedosu.

Nebo zkusit nějákou jinou možnost ? Uvažoval jsem už nad přestreamováváním video streamu na nějáký VPS server.
Nejvíce se mi zatím líbí tento způsob pomocí mjpg.

Předem díky.
juriad
Profil
Jakým způsobem ty snímky aktualizuješ? Máš na serveru nějaké PHP, které najde nejnovější soubor? Pokud ano, tak jednoduše zobraz druhý nejnovější :-) Bude to 2 sekundy pozadu, ale zato to bude spolehlivé.
Drue
Profil *
Nemám tam nic, snímky se přemazávají jeden přes druhý a pak se aktualizují.

<script type="text/javascript">
refreshImage = function()
{
img = document.getElementById("cam");
img.src="/cam/stream.jpg" + Math.random();
}
</script>

<body onload="window.setInterval(refreshImage, 3*1000);">

<img src="/cam/stream.jpg" width="640" height="480" id="cam" class="cam">
juriad
Profil
Pokud se přemazávají, tak řešení neexistuje, protože opravdu v okamžiku refreshe ten obrázek nemusí být celý.
Proto, pokud se provádí nějaká taková drastická operace, tak se soubor napřed uploadne s jiným jménem a až je upload hotový, tak se přejmenuje.

Máš na tom serveru k dispozici PHP? Na jakém počítači provádíš ten upload, co tam máš k dispozici za nástroje? Jsi schopný si něco sám naprogramovat? Nejjednodušší by bylo soubory nepřepisovat, ale zajistit, aby se jmenovaly pokaždé jinak (třeba timestamp v názvu).

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0