Toon posts:

Server side playlist

Pagina: 1
Acties:

Onderwerpen


  • dfr0st
  • Registratie: januari 2001
  • Laatst online: 22-09 11:18

dfr0st

Geel is mooier

Topicstarter
We gebruiken een applicatie (op een windows machine) die video uitstuurt via een een pci-e kaart (SDI signaal). Nu kan deze applicatie een playlist afspelen. Alleen niet meer dan dat, nu is dat prima voor waar hij normaal gebruikt voor wordt alleen willen we natuurlijk het weer anders gebruiken dan waarvoor hij bedoeld is.
We willen veel meer controle uitoefenen wat het volgende item is dat weergeven moet worden en voor hoe lang. Zodat wat weergegeven wordt actueler wordt dan alleen een loop die afspeelt.

De playlist zou er als volgt uit kunnen zien:
[1] algemene informatie intro
[2] algemene informatie
[3] algemene informatie outro
[4] nieuws intro
[5] nieuws
[6] nieuws outro
[7] twitter berichten intro
[8] twitter berichten
[9] twitter berichten outro
[10] reactie intro (inactive)
[11] reactie (inactive)
[12] reactie outro (inactive)

Nu wil ik als er bijvoorbeeld geen nieuwe twitter berichten zijn dat item overslaan, of op het moment dat een reactie binnen komt deze meteen laten zien, dus nieuws afbreken en gelijk het bericht laten zien.

Nu hebben ze het programma een beetje aangepast dat ik zelf commando's er naartoe kan sturen:
De commando's gaan als AJAX calls naar een interne webserver van de player die op port 8040 draait.
Het commando voor ga naar nr 3 is: http://127.0.0.1:8040/SFjquery?command=goto&nr=3
Nu komt mijn probleem, ik kan actionscript en redelijk php. Nu kan ik daarin wel de speler vanuit aansturen alleen zodra ik mijn browserscherm sluit stopt het aansturen of als er meerder mensen een scherm aan hebben staat gaat het ook helemaal mis.
Dus ik wil op dezelfde computer als de applicatie een script draaien die continu een playlist afloopt. En de applicatie vertelt wel item hij moet laten zien. En bijvoorbeeld bij geen nieuwe twitter berichten geen items [7],[8] en [9] laat zien.

Ik heb gegooled en of het forum gezocht maar kon niet iets vinden onder "server side scripts" draaien en andere verwante zoek opdrachten.

Nu is mijn vraag: wat heb ik nodig (Apache?) en hoe zorg ik dat het script die de applicatie aanstuurt blijft draaien op de computer (windows). Ik sta open voor andere talen maar php zou fijn zijn.
Een simpel iets dat server side ergens continu doorheen loopt zou me erg op weg helpen.

Rene Kok


  • HuHu
  • Registratie: maart 2005
  • Niet online
Scripts zoals je met bijvoorbeeld PHP schrijft zijn altijd request-driven, dus die doen pas iets zodra er om gevraagd wordt. Je kan wel timers instellen, bijvoorbeeld middels een cron-job, die elke x minuten het PHP script aanroept om iets te gaan doen.

  • dfr0st
  • Registratie: januari 2001
  • Laatst online: 22-09 11:18

dfr0st

Geel is mooier

Topicstarter
tnx, zou het elke seconde uitvoeren van een klein scriptje voor veel load zorgen? Plus als ik even snel google is het minimaal elke minute en draait het op unix based computers en de machine is jammer genoeg windows (zal het even toevoegen aan de opening post)

Rene Kok


  • Matis
  • Registratie: januari 2007
  • Laatst online: 20:49

Matis

Rubber Rocket

Ik heb bij ons op de zaak een video-playout server ingericht. Die van ons is ook in staat op SDI-video in HD en SD op te nemen en uit te spelen. Wij hebben een Deltacast HD11-e voor het uitspelen/opnemen van de ruwe video.
Bij ons is de architectuur zo:
PCI-kaart <==> C applicatie <==> XML <==> Webservice / PHP
De Webservice voegt XML-bestanden toe in een map welke de C applicalite crawlt, daarin staan een aantal instructies. Denk hierbij aan het bestand dat afgespeeld moet worden, het beginpunt en het eindpunt van de video. Ook kunnen er complete playlists met loopbacks etc. in geplaatst worden.
Elke seconde wordt die map gecontroleerd op wijzingen in de XML-bestanden. We hebben ook een overrule-bitje zitten in de XML, welke de huidige playlist meteen stopt en het commando in dat XML-bestand direct begint uit te voeren.
Dit heb ik gedaan, omdat het vanuit PHP (zowel rechtentechnisch als process-communicatie tussen PHP en C, zie de post van HuHu) praktisch ondoenelijk is direct de C applicatie aan te sturen.

Helaas kan ik je geen concrete voorbeelden geven, aangezien het IP van ons bedrijf is, maar ik hoop dat ik je op weg hebt geholpen met het oplossen van je probleem.

If money talks then I'm a mime
If time is money then I'm out of time


  • dfr0st
  • Registratie: januari 2001
  • Laatst online: 22-09 11:18

dfr0st

Geel is mooier

Topicstarter
So werk deze app dus ook, alleen bij wijzigingen in de XML begint hij weer bovenaan de playlist. Nu met het extra commando kan ik dus in die playlist zelf zeggen wat hij moet doen dus [4] dan [1] dan [8]. Tuurlijk zou ik graag in C willen schrijven maar dat is iets te hoog voor mij gegrepen.

Rene Kok


  • Matis
  • Registratie: januari 2007
  • Laatst online: 20:49

Matis

Rubber Rocket

dfr0st schreef op maandag 08 november 2010 @ 21:48:
So werk deze app dus ook, alleen bij wijzigingen in de XML begint hij weer bovenaan de playlist. Nu met het extra commando kan ik dus in die playlist zelf zeggen wat hij moet doen dus \[4] dan \[1] dan \[8]. Tuurlijk zou ik graag in C willen schrijven maar dat is iets te hoog voor mij gegrepen.
De truc in jouw geval is het volgende: Je moet zorgen dat een playlist/XML-bestand, herhaald blijft worden, zolang er geen nieuw XML-bestand in de map komt te staan. Ik probeerde het eerst ook veel te moeilijk op te lossen, door data toe te voegen aan de reeds bestaande XML-bestanden. Uitendelijk bleek het veel makkelijker om de voor elk nieuw command/instructie gewoon een nieuw XML-bestand aan te maken. Waneer je een wijzing ziet in de XML-bestanden map, dan kun je die data alvast inlezen. Zit daar een bitje bij, welke aangeeft dat de instructies in de XML direct uitgevoerd moeten worden, dan kun je meteen naar het nieuwe XML-bestand springen.

If money talks then I'm a mime
If time is money then I'm out of time


  • dfr0st
  • Registratie: januari 2001
  • Laatst online: 22-09 11:18

dfr0st

Geel is mooier

Topicstarter
Ik snap je oplossing, jammer genoeg kan ik de C applicatie niet aan passen (geen broncode + geen budget), ik zou het wel kunnen vragen, maar ik behoud dan volgens mij de volgende problemen:
Ik weet niet welk item er afspeelt dus ik weet niet welke outro er moet afspelen.
Ik moet continu kijken of er wel of niet tweets (of andere data) aanwezig is en niet alleen als het item de volgende is (want ik weet niet hoever hij in de playlist is).

Denk dat zoiets als cron-job, idd een goede oplossing is (en voor mij toe te passen) Maar wat dan want het is geen unix machine.
Scheduled task gaat ook niet onder de minute

[Voor 3% gewijzigd door dfr0st op 08-11-2010 22:39]

Rene Kok


  • Matis
  • Registratie: januari 2007
  • Laatst online: 20:49

Matis

Rubber Rocket

Je hebt toch ook [google=windows task scheduler] :?

If money talks then I'm a mime
If time is money then I'm out of time


  • dfr0st
  • Registratie: januari 2001
  • Laatst online: 22-09 11:18

dfr0st

Geel is mooier

Topicstarter
Dat had ik ook net gevonden (zie edit) maar die gaat ook niet onder de minute.

-edit-
PHP:
1
header('refresh:1; url=same_page.php');


Soms kan het te simpel zijn. Alleen even kijken of hij het zal trekken.

[Voor 46% gewijzigd door dfr0st op 08-11-2010 22:52]

Rene Kok


  • HuHu
  • Registratie: maart 2005
  • Niet online
dfr0st schreef op maandag 08 november 2010 @ 22:41:
Dat had ik ook net gevonden (zie edit) maar die gaat ook niet onder de minute.

-edit-
PHP:
1
header('refresh:1; url=same_page.php');


Soms kan het te simpel zijn. Alleen even kijken of hij het zal trekken.
Dat is een non-oplossing, want als je browser sluit draait het dus niet meer door. Verder lijkt me een proces dat elke seconde moet draaien ook wel raar, wat is er zo noodzakelijk dat iets elke seconde moet gebeuren? Wat is het probleem dat het elke minuut draait? Kun je niet verder vooruit kijken dan 1 seconde? Je weet toch wat er wanneer gaat gebeuren, want die video's hebben toch een tijdsduur?
Pagina: 1


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee