Delen via


Videobewerkingsprojecten beheren

[De functie die is gekoppeld aan deze pagina, DirectShow, is een verouderde functie. Het is vervangen door MediaPlayer, IMFMediaEngineen Audio/Video Capture in Media Foundation. Deze functies zijn geoptimaliseerd voor Windows 10 en Windows 11. Microsoft raadt ten zeerste aan om nieuwe code te gebruiken MediaPlayer, IMFMediaEngine en Audio/Video Capture in Media Foundation in plaats van DirectShow, indien mogelijk. Microsoft stelt voor dat bestaande code die gebruikmaakt van de verouderde API's, indien mogelijk opnieuw worden geschreven om de nieuwe API's te gebruiken.]

[Deze API wordt niet ondersteund en kan in de toekomst worden gewijzigd of niet beschikbaar.]

De volgende tips helpen u bij het beheren van projecten in DirectShow Editing Services.

Wijzigingen in de tijdlijn

  • Als u de tijdlijn wijzigt nadat u de filtergrafiek hebt gemaakt, roept u IRenderEngine::ConnectFrontEnd opnieuw aan om de front-end opnieuw te bouwen. Dit heeft meestal geen invloed op de rest van de grafiek. Af en toe moet de render-engine echter de hele grafiek verwijderen voordat de front-end opnieuw wordt opgebouwd. (Dit gebeurt bijvoorbeeld als u een groep toevoegt of verwijdert.) De methode ConnectFrontEnd retourneert S_WARN_OUTPUTRESET om aan te geven dat de grafiek is verwijderd. Als dit gebeurt, moet uw toepassing de renderingsectie van de grafiek opnieuw opbouwen.
  • Als u alle objecten volledig uit de tijdlijn wilt verwijderen, roept u de methode IAMTimeline::ClearAllGroups aan.

opruimen

  • Wanneer u klaar bent met het gebruik van een render-engine, roept u de methode IRenderEngine::ScrapIt aan. Net als bij elk COM-object moet u elke interfacepointer vrijgeven wanneer u klaar bent met het gebruik ervan.
  • De render-engine behoudt geen verwijzingsaantallen op de tijdlijn. Laat de tijdlijn niet los voordat u klaar bent met het gebruik en roep altijd eerst ScrapIt- aan op de render-engine.
  • Als u alle verwijzingen naar een tijdlijn vrijgeeft, gebruikt u geen van de objecten in die tijdlijn, zelfs niet als u referentieaantallen op deze objecten hebt.

Meerdere tijdlijninstanties

  • Verplaats tijdlijnobjecten niet tussen tijdlijnen. Elk object in een tijdlijn moet door die tijdlijn worden gemaakt. De tijdlijn bevat een interne cache met informatie over de objecten die worden gemaakt; het verplaatsen van tijdlijnobjecten kan de cache verstoren.
  • Gebruik nooit hetzelfde exemplaar van een render-engine met meer dan één tijdlijn. De render-engine bevat een cache met informatie over de tijdlijn. Meerdere tijdlijnen verstoren de cache en veroorzaken onvoorspelbare resultaten. Als u twee actieve tijdlijnen nodig hebt, moet u afzonderlijke exemplaren van render-engines maken voor elke tijdlijn.
  • Een tijdlijn kan meer dan één render-engine gebruiken, maar niet tegelijkertijd. Verwijder de oude render-engine voordat u een andere render-engine gebruikt. (Normaal gesproken doet u dit wanneer u overschakelt van de basisweergave-engine voor preview naar de slimme render-engine voor het schrijven van bestanden.)

persistentie

  • De filtergrafiek is niet permanent wanneer u het project opslaat in een XML-bestand. Daarom verliest u informatie met betrekking tot slimme recompressie, compressie-indeling of compressieparameters. Het is aan de toepassing om deze parameters te herstellen nadat een project is geladen.

DirectShow Editing Services gebruiken