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
Szenario: Wenn ich nur
libvlc_media_player_set_position
nennen (oderlibvlc_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 derlibvlc_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); } }
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!
Ich habe begonnen, opencv anstelle von vlc für jetzt zu verwenden. Aber ich möchte immer noch die Lösung wissen. – seleciii44