[VB6] MPlayer tijdstippen markeren.

Pagina: 1
Acties:

  • Twee Dee
  • Registratie: Juli 2002
  • Laatst online: 07:38

Twee Dee

Morgen weer een ondertitel.

Topicstarter
Ik ben een kleine applicatie aan het bouwen waarmee ik mensen bepaalde stukken film moet laten zien.
Ik heb dus een video file die ik afspeel in een Mediaplayer object en ik wil de Mediaplayer automatisch maar bepaalde stukken laten zien (of dus juist stukken automatisch overslaat, hoe je het zelf maar wilt).

Eigenlijk wilde ik gebruik maken van zogenaamde "Markers" en ik dacht dat dit gewoon kon. Ik wilde dan gebruik maken van de Mediaplayer_Markerhit event om de Mediaplayer te laten springen naar de Marker die het volgende segment aangeeft.

Ik ben aan het zoeken geweest (voornamelijk MSDN en techfora) maar ik heb geen oplossing gezien voor wat ik wil. Markers zijn alleen handmatig toe te voegen met een ASF media editor, maar dat wil ik niet. Ik bepaal namelijk de segmenten in mijn VB project en die kan ik dus niet handmatig gaan invoeren.

Wie weet er dus of er een mogelijkheid is om in mijn VB project mijn Mediaplayer bepaalde stukken van een movie te laten overslaan? Het knippen van de film is geen optie, want de segmenten die overgeslagen moeten worden kunnen elke keer anders zijn.

Mocht ik echt helemaal niks weten dan kan ik altijd nog een timer laten lopen en gewoon frames te tellen o.i.d. maar dat wordt wel heel ranzig :X

Luister nou gewoon naar me, dat voorkomt dat ik later "zie je wel" moet zeggen.


  • Twee Dee
  • Registratie: Juli 2002
  • Laatst online: 07:38

Twee Dee

Morgen weer een ondertitel.

Topicstarter
Aanvullende informatie:

Ik heb zelf 2 lijsten met framenummers gemaakt. Een lijst van "startpunten" en een lijst met "eindpunten". Ik wil dus van een film alleen de stukken laten zien tussen startpunten en eindpunten.

Bijvoorbeeld met de volgende gegevens:
Startpunten (456,3500, 7667)
Eindpunten (590, 4345, 8867)
Ik wil er dus nu voor zorgen dat ik in de Mediaplayer alleen de segmenten 456 tot 590, 3500 tot 4345 en 7667 tot 8867 laat zien.

Maar ik heb dus nog geen mogelijkheid gevonden om dus een soort "notify" van de Mediaplayer te krijgen zodra ik een bepaald framenummer bereik.

Heeft iemand anders ervaring met het maken van een ASF-file (met XML ??) om markers in de video stream op te nemen, of is er toch een "simpelere" methode?

Luister nou gewoon naar me, dat voorkomt dat ik later "zie je wel" moet zeggen.


  • Twee Dee
  • Registratie: Juli 2002
  • Laatst online: 07:38

Twee Dee

Morgen weer een ondertitel.

Topicstarter
Ook al zijn er geen reacties, ik zal toch mijn oplossing plaatsen :D

Via een nog uitgebreidere search ben ik uiteindelijk gekomen bij een frameserver die vanuit een script een film kan laten afspelen in je oude vertrouwde mediaplayer.

Dit gaat via "AviSynth"

Het uiteindelijke scriptje (met de framenummers uit mijn vorige voorbeeld) gaat er dan zo uit zien:

code:
1
2
3
4
5
avisource("C:\Movie.avi")

SwapUV()

Trim(456, 590) ++ Trim(3500, 4345) ++ Trim(7667, 8867)

Het commando "avisource" vertelt welke film er gebruikt moet worden.
Het Trim commando zegt welke frames er getoond moeten worden en "++" concateneert deze frameseries.

SwapUV heb ik moeten gebruiken omdat de kleuren anders niet klopten.

De code moet worden opgeslagen als een .AVS file (AviSynth Script) en deze kan worden geopend in je oude vertrouwde MediaPlayer (Classic ;) ).

[ Voor 3% gewijzigd door Twee Dee op 01-09-2004 11:51 ]

Luister nou gewoon naar me, dat voorkomt dat ik later "zie je wel" moet zeggen.