Trouble Inserting VLC Instance into PyQt Frame

All you've ever wanted to know about the ActiveX, Mozilla plugins, the web interface and various PHP extensions
thebeav
New Cone
New Cone
Posts: 1
Joined: 18 Oct 2016 06:30

Trouble Inserting VLC Instance into PyQt Frame

Postby thebeav » 18 Oct 2016 06:35

I'm trying to make a simple video player app by embedding a VLC instance inside a PyQt widget (a QFrame). I found a few examples that go me going, but my code doesn't quite work. When I launch it, it plays "test_video.mp4", but it launches the regular VLC player app in its own, separate window. When I close out of the VLC player window, obviously the video stops, but the audio continues playing until I close my own Qt (PyQt) window. I'm using python-vlc, downloaded via pip.

Full disclosure, I originally posted this problem on stackoverflow, but got no response (yet).
http://stackoverflow.com/questions/3991 ... o-a-qframe

Code: Select all

### video_player.py import sys import vlc from PyQt4 import QtCore, QtGui from video_player_main_window import Ui_MainWindow class StartQT4(QtGui.QMainWindow): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.vlc_instance = vlc.Instance("--no-xlib --sout-all") self.mediaplayer = self.vlc_instance.media_player_new() self.mediaplayer.set_xwindow(self.ui.video_frame.winId()) print(self.ui.video_frame.winId()) self.media_path = "test_video.mp4" self.media = self.vlc_instance.media_new(self.media_path) self.mediaplayer = self.vlc_instance.media_player_new() self.mediaplayer.set_media(self.media) self.mediaplayer.play() if __name__ == "__main__": app = QtGui.QApplication(sys.argv) myapp = StartQT4() myapp.show() sys.exit(app.exec_())
I added a "print(self.ui.video_frame.win())" just for debugging / sanity check to make sure that was a legitimate value. Command line output below. The "X server failure" shows up after I close the VLC window while my PyQt window is still running.

Code: Select all

### command line output 106954771 [00007f9c48055168] vdpau_avcodec generic error: Xlib is required for VDPAU [00007f9c3c003968] xcb_window window error: X server failure
The "video_player_main_window" is the module that QtDesigner (+ pyuic4) generates. "video_frame" is the name of the QFrame object I'm trying to put the VLC instance into. See full code for video_player_main_window.py here: http://pastebin.com/cHpAHZN2

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: Trouble Inserting VLC Instance into PyQt Frame

Postby Jean-Baptiste Kempf » 22 Jan 2017 23:53

Why not using pyvlc ?
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.


Return to “Web and scripting”

Who is online

Users browsing this forum: No registered users and 11 guests