videó konvertálása flv-be szerver oldalon

Üdv!

Egy videónézegető modult készítek, és ahhoz feltöltőt. A feltöltőnek szerver oldalon át kellene alakítani a videót flv formátumra. A gond ott van, hogy ez akár percekig is eltarthat, addig meg csak ne fusson már a php szkript. Valami olyasmi megoldás kellene, hogy a php indítson el egy shell szkriptet a megfelelő paraméterekkel, majd folytassa tovább a futását, és ne várja meg, amíg befejeződik. A shell szkript viszont fejeződjön be akkor is, ha a php szkript már nem fut. Megoldható? Vagy valamilyen kerülőt kell alkalmazni?

Hozzászólások

nem egyszerubb egy cronjob, ami pl sql-bol veszi a kodolandokat, es ha kesz, a statuszt atbillenti "kesz"-re?

t

Nem túl elegáns megoldás, egy shell script is folyamatosan fut, de működik: mkfifo-val létrehozol egy pipe-ot, amit egy külső scripttel olvasol:

while true; do
fajlinfo="`head pipefajl -n 1`";
{
átalakítás
}&
done;

Fontos, hogy gyorsan visszaérjen a head részhez, ezért van az & jel. Valószínűleg van valami elegánsabb megoldás is, de a php-hez nem értek.

Erre sajnos a megoldás az, hogy kell egy daemont írni. Szerencsédre a pcntl libraryvel akár külön szálakat is indíthatsz PHP-ből, tehát egy számodra ismert nyelven megírhatod az egészet. Ha pl ffmpeg-et használsz, akkor azt meglökheted a megfelelő PHP libraryvel.

Érdemes arra figyelni, hogy az ffmpeg a procit akár jópár másodpercig max terhelésen tudja tartani, tehát érdemes előre skálázásban gondolkodni.

Az egész feladatnak pedig egy sorbanállást kell megvalósítani. A realtime feltöltés gyakorlatilag lehetetlen, tehát a felhasználói felületen erről visszajelzést kell adj.