2015-12-14 30 views
5

Ich benutze libvlc 3.0.0 (ich habe auch versucht, 2.2.0), um Bilder von einem h264-kodierten mp4-Datei (enthält keinen Ton, nur Video-Frames) auf Windows 7 mit Visual zu erfassen Studio 2012. Ich kann spielen, pausieren, stoppen und ohne Probleme vorwärts gehen. Aber wenn ich versuche, rückwärts zu suchen, ich auf Probleme stoßen:libvlc_media_player_set_position schlägt fehl, wenn rückwärts gesucht wird

  1. Szenario: Wenn ich nur libvlc_media_player_set_position nennen (oder libvlc_media_player_set_time), scheint es, wie es zu der Position geht. Aber vlc hört auf, Frames empfangen Callbacks (mit anderen Worten, der Spieler friert), bis es das gleiche (oder nächste) Frame vor der libvlc_media_player_set_position aufgerufenen Funktion erreicht.

    counter = 0; 
    while (true) 
    { 
        sleep(40); // 25 hz 
        ++counter; 
        if(counter % 100 = 0) 
        { 
         // assuming current_position > 0.1f 
         libvlc_media_player_set_position(p_mi, 0.1f); 
        } 
    } 
    
  2. Szenario: Ich kann es nur funktioniert, wenn ich zum ersten Mal den Spieler stoppen, dann starten Sie von Anfang an zu spielen.

    counter = 0; 
    while (true) 
    { 
        sleep(40); // 25 hz 
        ++counter; 
        if(counter % 100 = 0) 
        { 
         // assuming current_position > 0.1f 
         libvlc_media_player_stop(p_mi); 
         libvlc_media_player_play(p_mi); 
         libvlc_media_player_set_position(p_mi, 0.1f); 
        } 
    } 
    

    Das Problem bei diesem Szenario ist, wenn ich für eine Weile rückwärts Positionierung halten, erhalte ich die Fehler (vlc druckt den Fehler in der Befehlszeile) core decoder error: cannot continue streaming due to errors. Nach diesem Fehler zu suchen, es (wieder gefriert), und das nächste Mal, wenn ich nicht mehr spielen versuchen, erhalte ich einen „Zugriffsverletzung“ Fehler: Unhandled exception at 0x... (libavcodec_plugin.dll) in vlctest.exe: 0xC0000005: Access violation reading location 0x00000040

Es ist falsch fühlt sich zuerst die Video-Wiedergabe neu starten will. Fehle ich etwas?

Vielen Dank im Voraus!

+0

Ich habe begonnen, opencv anstelle von vlc für jetzt zu verwenden. Aber ich möchte immer noch die Lösung wissen. – seleciii44

Antwort

1

Ich weiß nicht, wo ich es Chaos tat vor, aber ich heruntergeladen habe die aktuelle vlc-3.0.0-git-20151221-0002-win32-debug.zipvideolan nightly builds nächtlichen bauen und es funktioniert jetzt.

+0

hiii, ich habe die gleiche Art von Problem, funktioniert die Verbindung, die Sie zur Verfügung gestellt, nicht, können Sie bitte erklären, wie Sie nächtlich bauen –

+0

ich den Link repariert. aber ich kann dir keine Details geben. Ich brach mein Handgelenk und kann nicht für einen Monat zur Arbeit gehen :(Die Lösung ist in meinem PC bei der Arbeit :( – seleciii44

+0

oh, bis bald, btw Ich bin der Link meiner Fragen, http://StackOverflow.com/questions/41180551/video-gets-stuck-wenn-its-seeked-back-c-qt-libvlc –

Verwandte Themen