Results 1 to 12 of 12

Thread: Video openen vanaf bepaalde tijd

  1. #1
    Hobby fröbelaar
    Join Date
    Nov 2002
    Location
    Goes
    Posts
    458

    Video openen vanaf bepaalde tijd

    Hallo allen,

    Is het mogelijk om een video bestand te openen vanaf een bepaalde tijd?
    Ik denk met een ShellExecute maar dan is de vraag welke parameters je mee moet geven. En is het voor ieder video formaat hetzelfde?

    Code:
    SHellExecute(Handle,'open',videobestand.extensie , starttijd, SW_SHOWNORMAL)

    Of zoiets.?
    Greetzz Jacco

  2. #2
    Je roept in je ShellExecute 'open' aan.
    Dan wordt er een standaard open actie gedaan voor de associated applicatie.
    De 'open' actie heeft echter NOOIT extra parameters voor starttijd.

    Je zult dus de applicatie die je wilt gebruiken echt op moeten starten door ook de .exe op te geven.
    Als je bijvoorbeeld VCL gebruikt dan kun je --start-time en --stop-time meegeven.

    "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" input.ts --start-time=15 --stop-time=20

    (Beste is dan natuurlijk wel even een functie gebruiken die bepaald waar vcl.exe staat, uit de registry, want dat kan op elke systeem verschillend zijn)

    Voor Windows Media player zou je het eventueel wel met ShellExecute op kunnen lossen.
    Maar dan moet je eerst een asx bestand maken en die dan met 'open' starten.
    Zie ook: https://superuser.com/a/12346/235723

    Voorbeeld:
    XML Code:
    1. <Asx Version = "3.0">
    2.   <Entry>
    3.     <StartTime value = "00:25:00.000" />
    4.     <Duration value = "00:15:00.000" />
    5.     <Ref href = "sample.avi" />
    6.   </Entry>
    7. </Asx>

  3. #3
    Hobby fröbelaar
    Join Date
    Nov 2002
    Location
    Goes
    Posts
    458
    Wauw dank je voor je antwoord, ik ga er mee aan de slag.
    VCL oplossing is voor mij prima, want die kan volgens mij alle gangbare videoformaten aan.
    En het is toch alleen voor mijn eigen systeem (ik programmeer alleen voor mezelf) maar het pad van de exe uit register te halen is wel weer een leuke les, dus ook daar ga ik eens mee knutselen.
    Maar ik kan weer even verder bedankt.
    Greetzz Jacco

  4. #4
    Quote Originally Posted by Bolus View Post
    En het is toch alleen voor mijn eigen systeem (ik programmeer alleen voor mezelf)....
    Het nadeel van VLC is dat als die eenmaal opgestart is, het verder uit je handen is (of de handen van je programma ).

    Als je je toch helemaal toelegt op VLC en het is voor jezelf dan is dit misschien ook een leuke oplossing.
    Met onderstaande link/code kun je zelf de video in een TPanel laten zien met knoppen om deze te bedienen:
    https://wiki.videolan.org/Using_libvlc_with_Delphi/

    Voor start en stoptijd kun je de volgende opties aan libvlc_media_add_option meegeven:
    :start-time=30
    :stop-time=60.5

    En je kunt nog veel meer doen (snelheid controleren e.d.).

    Maar ik weet niet of je zoveel "control" over de video moet hebben...
    Het is natuurlijk wel wat "moeilijker" dan gewoon VLC starten op een tijdstip

  5. #5
    Hobby fröbelaar
    Join Date
    Nov 2002
    Location
    Goes
    Posts
    458
    Die laatste ziet er inderdaad wel wat ingewikkeld uit zo op het eerste gezicht.
    Vooralsnog krijg ik vlc nog niet opgestart met de juiste starttijd.
    Code:
    ShellExecute(application.Handle,nil, '"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" input.ts --start-time=15 --stop-time=20',filename,nil,SW_SHOWNORMAL);
    Zonder start en stoptijd werkt het wel (uiteindelijk) het blijkt ook dat vlc niet goed tegen spaties in een bestandsnaam kan, dus die heb ik tussen dubbele quotes gezet.
    Greetzz Jacco

  6. #6
    start-time en stop-time zijn ook parameters.
    Tevens is de input.ts in dit voorbeeld juist het af te spelen bestand.

    Je moet dus zoiets doen:
    Delphi Code:
    1. ShellExecute(Application.Handle, nil, '"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"','"' + filename + '" --start-time=15 --stop-time=20", nil, SW_SHOWNORMAL);


    (start-time en stop-time in de paramters en e.v. de filename ook quoten als die spaties bevat)

  7. #7
    Hobby fröbelaar
    Join Date
    Nov 2002
    Location
    Goes
    Posts
    458
    Die parameters moeten dus aan de bestandsnaam toegevoegd worden begrijp ik?
    Ik zit nog wat te rommelen met de quotes. Ik krijg in VLC steeds een foutmelding dat het bestand niet te lezen is.

    Lezen van bestand mislukt:
    VLC kon het bestand "E:\Ultimate Magic Video Collection Vol 1\Bill Malone - On The Loose Vol 1.avi--start-time=45" niet openen (Bad file descriptor).
    Hoe moet de uiteindelijke bestandsnaam er precies uitzien?
    Greetzz Jacco

  8. #8
    Oeps. Ja, de quotes staan niet helemaal goed.

    Delphi Code:
    1. ShellExecute(Application.Handle, nil, '"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"','"' + filename + '" --start-time=15 --stop-time=20', nil, SW_SHOWNORMAL);
    De filenaam zelf moet dus tussen " " quotes staan.
    De --start-time en --stop-time moeten daarbuiten (en aangezien die geen spaties bevatten hoeven die niet om eigen quotes.

  9. #9
    (Yikes, Rikkie, altijd even je code uittesten )

    Doe dit maar, dat werkt wel:
    Delphi Code:
    1. procedure TForm1.Button1Click(Sender: TObject);
    2. var
    3.   VLC: string;
    4.   Filename: string;
    5.   Params: string;
    6.   BeginSeconde: Integer;
    7.   EindSeconde: Integer;
    8. begin
    9.   Filename := 'jouw bestand met spaties.mkv';
    10.   BeginSeconde := 15;
    11.   EindSeconde := 20;
    12.   VLC := AnsiQuotedStr('C:\Program Files (x86)\VideoLAN\VLC\vlc.exe', '"');
    13.   Params := AnsiQuotedStr(Filename, '"') + format(' --start-time=%d --stop-time=%d', [BeginSeconde, EindSeconde]);
    14.   ShellExecute(Application.Handle, nil, PChar(VLC), PChar(Params), nil, SW_SHOWNORMAL);
    15. end;

  10. #10
    Hobby fröbelaar
    Join Date
    Nov 2002
    Location
    Goes
    Posts
    458
    thnxx. ik was nog steeds aan het rommelen.

    getest en het werkt. magisch . dank je wel.
    Last edited by Bolus; 08-Dec-17 at 15:55.
    Greetzz Jacco

  11. #11
    Er is ook een component waar je de video direct in kan laden, paslibvlcplayer noemt het. Werkt zeer goed, en gebruik deze zelf soms ook.. Werkt op dezelfde manier, maar maakt alles nog iets makkelijker

  12. #12
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    "Vroegah" had je ook het TMediaPlayer-component standaard in Delphi, dat eigenlijk een schil was
    rond de standaard Windows Media Player, waarmee je filmpjes gewoon in je applicatie kon afspelen
    (op een panel geloof ik).
    Geen idee of deze nog als component geïmporteerd is in latere Delphi versies en hij heeft een redelijk
    onhandige gebruiksaanwijzing, maar misschien kun je er wat mee.
    TMemoryLeak.Create(Nil);

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •