ShowAnalyzer afstemmen

Om de ShowAnalyzer-instellingen voor advertentiedetectie aan te passen, start je de Showanalyzer User Interface vanuit het Startmenu. Klik vervolgens op Tools → Settings. Klik daarna op Default Profile.
OPMERKING: MCEBuddy gebruikt momenteel altijd het standaardprofiel, dus zorg ervoor dat wijzigingen in de instellingen voor advertentiedetectie altijd in het standaardprofiel worden aangebracht.

b52e1e1302534cf1023342901cca4d05bea407be

Hier vind je een lijst met alle instellingen die ShowAnalyzer gebruikt om reclames te detecteren. Als je op een instelling klikt, zie je onderaan de beschrijving. Experimenteer met de verschillende instellingen om de advertentiedetectie agressiever of minder agressief te maken, afhankelijk van je opnamen. Zorg ervoor dat je de optie Override inschakelt voor elke instelling die je wijzigt en klik vervolgens op de knop Save Changes.

OPMERKING: Als je merkt dat ShowAnalyzer geen EDL-bestand aanmaakt, klik dan bovenaan op het tabblad Output en wijzig EDL → When in Finished en selecteer de optie Override

ShowAnalyzer instellen op een nauwkeurigheid van 100 procent bij het detecteren van reclames

Ben Drawbaugh

Ben Drawbaugh

Bijgewerkt wo 17 jul. 2019·Leestijd 16 min

Als je ooit technologie voor het automatisch overslaan van reclames hebt gebruikt, weet je dat dit niet 100 procent nauwkeurig is. We herinneren ons dat onze oude ReplayTV 4080 een knop op de afstandsbediening had om de functie uit te schakelen wanneer deze ten onrechte een deel van onze favoriete show als reclame identificeerde. Je drukte erop en spoelde dan terug, dus hoewel er niets verloren ging, zijn sommige mensen er zo geïrriteerd door dat ze de reclames liever op de ouderwetse manier overslaan. Nou, in tegenstelling tot de ReplayTV, kun je bij gebruik van ShowAnalyzer voor het detecteren van reclames op je HTPC, je instellingen aanpassen tot een nauwkeurigheid van 100%. Tot voor kort was dit niet echt mogelijk omdat, hoewel ShowAnalyzer al een tijdje kon worden aangepast, de ene set instellingen het ene programma goed zette en het andere erger maakte. Welnu, in de nieuwste bèta kun je regels instellen waarmee je de instellingen per kanaal of zelfs per show kunt aanpassen. Dus hoewel er niets automatisch is aan het bereiken van een nauwkeurigheid van 100 procent, is het eigenlijk best leuk om te proberen. Je kunt je specifieke instellingen zelfs met anderen delen, je weet wel, om iedereen te laten zien hoe slim je bent.

De basis

Om de instellingen aan te passen, is het belangrijk om de basis te begrijpen van het zeer complexe proces dat automatische reclamedetectie is (als je ShowAnalyzer nog niet hebt geïnstalleerd, bekijk dan onze functie How to Automatically skip commercials in Media Center). Kort gezegd is elke show op de commercialtelevisie een reeks tijdsblokken die worden verdeeld door langdurige zwarte frames zonder audio. De echte sleutel is dus het lokaliseren van de verdelers die de blokken vormen. Vervolgens kijk je naar verschillende kenmerken van die blokken om te proberen te bepalen welke reclames zijn en welke deel uitmaken van de show. De verdelers zijn meestal niet moeilijk te detecteren, aangezien er normaal gesproken geen langdurig zwart frame zonder geluid is tijdens de show. Maar soms loopt de audio niet synchroon of zijn er diverse andere problemen die de hele boel in de war kunnen sturen. Detecteren welke blokken wat zijn, is een stuk eenvoudiger dan het vinden van verdelers, omdat dingen als netwerktelevisielogo’s – zie je wel, er is iets goeds aan ze – meestal alleen aanwezig zijn tijdens de show. Logo’s zijn echter niet de enige manier om te bepalen of een blok een reclame is, andere veelzeggende tekenen zijn het aantal audiokanalen en de lengte van de blokken. De langere blokken maken bijna altijd deel uit van de show en de totale lengte van reclameblokken is bijna altijd deelbaar door 30 seconden (30, 60, 90, 120, 150 enz.). Natuurlijk, als dit allemaal definitieve feiten waren in plaats van waarschijnlijkheden, hoefden we niet te weten hoe we deze instellingen moesten aanpassen. Het goede nieuws is dat deze uitzonderingen meestal per netwerk of per show gelden, en nu kunnen we profielen configureren en de juiste instellingen toepassen wanneer dat nodig is.

We gaan hier twee benaderingen volgen. Eerst geven we een praktijkvoorbeeld door een voorbeeldprofiel te maken voor een komedie van 30 minuten die de standaardinstellingen altijd in de war lijkt te sturen. Dit is een goed voorbeeld omdat het twee gebieden omvat die gemakkelijk te verhelpen zijn. De eerste is het eerste segment dat nooit een reclame is en de tweede is de laatste grap aan het einde van de show die meestal ten onrechte wordt gedetecteerd als onderdeel van de laatste reclame. Vervolgens nemen we door wat elk van de instellingen doet, zodat je verder kunt gaan dan de basis – een speciaal dankwoord aan de maker van ShowAnalyzer, Jere Jones, voor het nemen van de tijd om uit te leggen wat al deze instellingen betekenen.

Het voorbeeld

Start eerst de gebruikersinterface van ShowAnalyzer, ga naar Tools en selecteer vervolgens Settings. Standaard bekijk je de standaard Global Settings, laten we vervolgens op New Profile klikken linksonder en een naam typen voor je profiel. Klik dan op ok en selecteer

het profiel dat je links hebt gemaakt en je hebt twee tabbladen rechts met instellingen. Als je de standaarden wilt overschrijven, klik je op het selectievakje en pas je dit aan. Er zijn hier veel opties, maar voor het overgrote deel pas je er slechts een paar aan onder het tabblad Analyzer. We beginnen met wat het gemakkelijkst te begrijpen is, dus scrol omlaag naar het gedeelte AutoMark en vink onder Beginning Mark As en Length aan. Aangezien het begin van Rules of Engagement altijd als een reclame lijkt te worden gedetecteerd, markeren we het begin automatisch zodat het altijd deel uitmaakt van de show. Begin met het bekijken van de show en noteer hoe lang het duurt voordat de eerste reclameonderbreking begint. Voor deze specifieke show is dat 100 seconden, dus we stellen Mark As in op Show en Length op 100 seconden, nu zal dat blok altijd worden gemarkeerd als onderdeel van de show.

Nu heeft deze show ook een laatste grap aan het einde die meestal wordt gedetecteerd als een reclame. Dus scrollen we naar het gedeelte Smoother en vinken we onder Show het vakje Override aan naast de instelling Minimum. Dit is de minimale lengte van elk blok dat deel uitmaakt van de show. We bekijken de show en stellen vast dat de laatste grap het kortste showsegment is van precies één minuut. Dus stellen we de Show Minimum in op 59 seconden voor de zekerheid.

Nu kunnen we op Save Changes klikken en linksboven op Global Settings klikken. We moeten een regel instellen zodat ons nieuwe profiel wordt gebruikt bij het scannen van dit programma. Klik dus op de knop Add en selecteer in de eerste vervolgkeuzelijst het profiel dat we zojuist hebben gemaakt. Zorg er vervolgens onder Condition 1 voor dat er “If file name contains Rules of Engagement” komt te staan, vink ten slotte het selectievakje Enabled aan en klik op opslaan.

Sluit nu het configuratievenster en kies het probleemoplossende bestand via de optie Analyze File onder het menu File. Laat ShowAnalyzer het bestand opnieuw scannen en bevestig dat je profiel werkt. Als het je nieuwe instellingen helemaal niet lijkt te gebruiken, controleer dan het logbestand dat dezelfde naam heeft als je opname en in dezelfde map is opgeslagen, zoek naar rules en bevestig dat je regel naar wens heeft gewerkt. Zodra het werkt, kun je het profiel zelfs hergebruiken voor andere programma’s door regels te bewerken of toe te voegen om het profiel te gebruiken. Dit is uiteraard een eenvoudig voorbeeld, maar zeer effectief voor bepaalde programma’s.

De kern van de instellingen

Voor degenen die echt diep in de kern van de instellingen willen duiken, volgt hier een uitleg van elke instelling en hoe je deze kunt aanpassen. Helaas vereisen sommige van deze instellingen enige kennis van SQL om toegang te krijgen tot de gegevens die nodig zijn om ze echt fijn af te stemmen. De routekaart van ShowAnalyzer bevat een bijbehorende app genaamd SchoolHouse die deze gegevens voor je leest en het gemakkelijker maakt, maar terwijl we daar allemaal op blijven wachten, kun je ermee knoeien door te proberen en te falen of SQL te leren. (Deze worden weergegeven in de volgorde waarin ze verschijnen in ShowAnalyzer, niet in volgorde van nut.)

Proces

Dit geeft aan hoeveel verwerkingskracht ShowAnalyzer kan gebruiken. De optie idle betekent dat het de CPU alleen gebruikt wanneer niets anders deze gebruikt. Above Normal betekent dat het alle tijd van de CPU krijgt, geen goed idee. Mark As Background Task vertelt Vista en Windows 7 dat dit proces de laagste prioriteit moet hebben, zelfs bij schijf-IO. Tenzij dit een toegewijde analyzer-computer is, kun je deze instellingen met rust laten.

Audio

Deze zijn min of meer nutteloos, maar kunnen helpen bij het detecteren van de scheidingslijn omdat deze geacht wordt stil te zijn. Het probleem is dat wat als stil moet worden beschouwd sterk variërend is. Het vinden van een leeg videobeeld is eenvoudig, met uitzondering van ruis, maar audio is anders. Wat ShowAnalyzer doet, is het audioniveau van een hele show plotten. Je zou een klokcurve verwachten, waarbij de meeste delen van de show gemiddeld zijn, sommige stil en sommige luid, maar wat er werkelijk gebeurt is een klokcurve met een bult aan de lage kant. Het idee is om die bult te vinden. Neem de onderste 1 of 2 procent en dat zijn waarschijnlijk de stilste frames, en dus de scheidingslijnen. Hier draait het Histogram en Volume om. Kort samengevat wat betreft Audio: rotzooi er niet mee tenzij je al al het andere zonder success hebt geprobeerd, maar de kans is groot dat je dat toch nooit zult doen.

Sync error geeft aan hoe ver uit elkaar, in seconden, een leeg frame en een stil punt kunnen liggen en nog steeds als gerelateerd kunnen worden beschouwd. Als je in de ShowAnalyzer-database kijkt en ziet dat de luma erg laag daalt en de audio heel dichtbij daalt, maar er in de scheidingstabel geen vermelding voor is, kan dat komen doordat ze een halve seconde uit elkaar liggen. Zo ja, dan kun je de sync error verhogen. In SchoolHouse kun je gemakkelijk zien hoe de audio- en videolijn op verschillende punten dalen.

Video

Het feit dat er lange zwarte scheidingslijnen bestaan voor en na reclameblokken is wat commerciële detectie laat werken, maar hoe zwart is zwart? Dit is de belangrijkste instelling als het gaat om het detecteren van scheidingslijnen en in feite is de instelling Average Maximum Luma Divider de kern van commerciële detectie. De standaardwaarde 70 (bereik is 0-256) is uiteraard een goed startpunt, anders zou ShowAnalyzer direct uit de doos helemaal niet werken, maar sommige bronnen hebben lichtere en donkerdere zwarttinten dan andere. Kort gezegd zoekt ShowAnalyzer naar deze zwarte frames in shows en probeert van daaruit te bepalen of er een nieuwe scène aankomt in Law & Order of dat er een reclameblok is begonnen. Het slechte nieuws is dat het erg moeilijk kan zijn om te weten waarop dit moet worden ingesteld, behalve door wat uit te proberen. Wat echt fijn zou zijn, is als er een eenvoudige manier was om te zien wat het Luma-niveau van je opnames was. Als je het gemiddelde van je daadwerkelijke opnames en de standaardafwijking (variantie) wist, zou deze instelling zichzelf instellen – de variance heeft een bereik van 0 tot 25. Een goede waarde voor Variance is 2, maar als er veel ruis is, is 11 veilig. Jammer genoeg is de snelste manier om de luma te bepalen om een opname te openen in VideoReDo en een tijdcode te zoeken voor een zwarte afbakening voorafgaand aan een reclame, en vervolgens een SQL-viewer te gebruiken om het geschiedenisbestand te bekijken; dat vertelt je dan de luma en de afwijking. Dus ja, absoluut niet eenvoudig. Dit is weer zo’n geval waarin SchoolHouse goed van pas komt, en tot die tijd is het een kwestie van trial-and-error.

Classifier

Zodra ShowAnalyzer de audio- en video-instellingen gebruikt om het programma in blokken op te delen, gebruikt het de classifier om te bepalen welke blokken deel uitmaken van het programma dat je wilt bekijken en welke reclames zijn. Dit is een gewogen systeem, dus er is een Base (basis) en een aantal factoren waaronder de Transition (overgang), Length (lengte) en het Channel Count (aantal audiokanalen). Elk blok krijgt een score toegewezen op basis van de verschillende factoren; een blok met een 1 is een reclame en een blok met een 0 is altijd het programma.

Deze blokken krijgen bijna nooit daadwerkelijk een perfecte score van 0 of 1, dus het feit dat programma’s en reclames elkaar meestal afwisselen helpt te bepalen welke welke is. Dus als ShowAnalyzer moeite had om te bepalen of een blok een reclame was, gebruikte het de waarde van de vorige blokken om te raden; dit zijn de overgangen van een programma naar een reclame. Het verschil tussen de score van een programmanblok en een reclameblok is dus de Transition Threshold (overgangsdrempel). Laten we de standaard Show To Commercial Transition Threshold van 0,77 als voorbeeld nemen. Als het 3e blok een score van 0,11 heeft en het 4e een score van 0,89, dan wordt blok vier gemarkeerd als reclame; als het 0,87 was geweest, dan niet. Als je de drempelwaarde voor Show To Commercial hoger instelt dan die voor Commercial To Show, is de kans groter dat je geen reclame overslaat dan dat je een deel van je programma overslaat.

De instelling Base is het startpunt voor de score van elk blok en is waarschijnlijk niet iets dat aangepast moet worden. Net als elk van de factoren heeft de Base een Confidence (zekerheid) en een Weight (weging). Kort gezegd begin je met een basiswaarde, voeg je kenmerken toe en ontstaat er een gewogen gemiddelde. De zekerheid bevindt zich op een schaal van 0 tot 1; dit is de score van het blok waar we het eerder over hadden. De weging geeft aan hoe belangrijk die ene factor is in vergelijking met de andere en bevindt zich op een schaal van 1 tot 100.

De instelling Length bepaalt hoe waarschijnlijk het is dat een blok een reclame is op basis van de lengte ervan. Als je er 100 procent zeker van bent dat elk blok van 30 seconden een reclame is, dan zet je de Confidence op 1 en de Weight op 100. Maar zo eenvoudig is het niet, omdat lang niet elke reclame even lang duurt, en dan zijn er nog die korte blokken die geen deel uitmaken van het programma of een reclame, afhankelijk van je perspectief — een goed voorbeeld van een pseudoreclame zijn de nummers om te sms’en om te stemmen bij American Idol. Desondanks kun je eenvoudig harde minima en maxima instellen voor de lengte van blokken in het gedeelte Smoother, waar we het zo over gaan hebben. De instelling Maximum Individual is de maximale lengte die een blok kan hebben om nog in aanmerking te komen als reclame — vergeet niet dat programma’s voor slechts ongeveer 15 procent uit reclames bestaan. De instelling Matches helpt te bepalen welke korte segmenten reclames of pseudoreclames zijn; een segment van 30 seconden is deelbaar door 15 en is dus een match, en daarnaast zijn de standaarden 10, 20 en 25 seconden.

Tolerance (tolerantie) is hoeveel speling er in de vergelijking moet worden toegestaan bij het beschouwen van de lengte. Er zijn 29,9 frames per seconde, dus er is geen aantal frames dat je exact 30 seconden oplevert. Deze instelling bepaalt dus hoeveel tolerantie alle andere lengte-instellingen hebben. De standaardwaarde is 1 en het minimum dat je hier wilt gebruiken is 0,5. Als je dit zo hoog instelt als 5 seconds, wordt vrijwel alles als reclame ingesteld, dus wees hier voorzichtig mee. In feite is dit niet iets dat je doorgaans aanpast, maar het komt wel van pas bij specifieke problemen.

Channel Count is het aantal audiokanalen. Als het programma in 5.1 is en er zijn blokken in stereo, dan is het betrouwbaarheidsthema 0,99 dat het blok een reclame is, aangezien de kans dat een programma van audiotrack wisselt erg klein is. Hetzelfde geldt als het programma in stereo is en één blok 5.1 is.

Smoother

Hier kun je eenvoudig de maximum- en minimumlengte van een reclame en de minimumlengte van een programmanblok instellen. De standaarden zijn vrij goed, aangezien er meestal nooit een reclameblok korter dan 60 seconden of langer dan 5 minuten is. De programma-instelling kan worden aangepast afhankelijk van welke programma’s je kijkt, maar 29 seconden is een goed startpunt. Dit is een zeer nuttige instelling dankzij profielen, en daarom hebben we deze in ons voorbeeld hierboven gebruikt.

Logo Detection

We haten ze allemaal, maar zenderlogo’s horen er nu eenmaal bij en het goede nieuws is dat ze helpen bepalen welke blokken reclames zijn en welke niet. Maar naast zenderlogo’s kunnen ook tickertapes en andere rommel op het scherm helpen of juist tegenwerken.

De instellingen voor Border (rand: boven, onder, links, rechts) vormen het percentage van het scherm dat wordt genegeerd bij het zoeken naar logo’s. Dit komt goed van pas als de zender graag tickertapes op het scherm toont, zoals ESPN. Als de tickertape de logodetectie verhindert, kun je dit getal verhogen en zal ShowAnalyzer de tickertape negeren en het logo vinden. Dit helpt ook om de tijd voor het analyseren van bestanden te verkorten, aangezien ShowAnalyzer die delen niet hoeft te onderzoeken. Sommige logo’s staan alleen op het scherm tijdens het programma, terwijl andere alleen op het scherm staan tijdens reclames. Soms zijn er ook helemaal geen logo’s.

De Minimum and Maximum Check Spacing bepaalt hoe vaak ShowAnalyzer stopt om een frame te decoderen en te controleren op een logo. Het verhogen van de maximum- en minimuminstellingen versnelt het proces, maar vergroot de kans dat je een logo mist dat niet de hele tijd op het scherm staat. Omdat de logo’s niet de hele tijd op het scherm staan, is de Missing Logo Forgiveness Time de tijd dat een logo kan verdwijnen voordat wordt aangenomen dat het programma geen logo heeft. Je wilt dit korter houden dan de reclamelengte, namelijk 15 seconden.

De Missing Logo Search Time (Zoektijd voor ontbrekend logo) is de tijd dat ShowAnalyzer blijft zoeken naar een logo dat het heeft gedetecteerd voordat het aanneemt dat het eerder gevonden logo nutteloos is. Normaal gesproken stel je dit in op niet langer dan een reclameblok, zodat het niet begint te zoeken alleen omdat er reclame is – zoeken vraagt namelijk meer rekenkracht en schijf-IO, dus als dit verkeerd is ingesteld, kan dit de tijd om een show te analyseren flink verlengen.

De Confidence (Betrouwbaarheid) en het Weight (Gewicht) van de drie typen logo’s kunnen net zo worden toegewezen als we deden in het lengtegedeelte, wat natuurlijk betekent dat het wordt opgeteld bij de totale score van een blok. Dus als je een zender had die altijd, en we bedoelen ook echt altijd, een logo toonde tijdens de show en nooit tijdens een reclame, dan zou je de betrouwbaarheid van het Show Logo en het No Logo (Geen logo) flink kunnen opschroeven en veel betere resultaten krijgen.

AutoMark

Hiermee kun je handmatig het eerste of laatste segment instellen als reclame of onderdeel van een show. Stel dat je wilt dat ShowAnalyzer de eerste 30 seconden van een show nooit als reclame markeert (zodat het niet sneller overslaat dan je AutoSkip kunt uitschakelen), dan stel je Mark As (Markeren als) in op Beginning of Show (Begin van show) en de Length (Lengte) op 30. Of als je normaal gesproken 3 extra minuten van elke show opneemt, wil je misschien End as Commercial (Einde als reclame) instellen en de Length (Lengte) op 180. Dit is eigenlijk nog nuttiger dan Smoother en is ook inbegrepen in ons voorbeeld hierboven.

Conclusie

Zoals je waarschijnlijk al hebt gemerkt, is het automatisch detecteren van reclames geen eenvoudige opgave, en hoewel het bereiken van 100 procent nauwkeurigheid door middel van finetunen niet voor zwakke harten is; het is technisch mogelijk dankzij de nieuwe profielfunctie in ShowAnalyzer. En hoewel veel van deze instellingen niet ontzettend nuttig zijn totdat SchoolHouse wordt uitgebracht, zijn andere instellingen zoals AutoMark en Smoother heel eenvoudig en effectief bij het corrigeren van specifieke detectieproblemen.


Als je Comskip gebruikt, zie dit onderwerp.

Bedankt hiervoor