웹캠에서 mjpeg 스트림을 가지고 pygtk를 사용하여 Python으로 작성된 응용 프로그램에 표시하려고합니다. 스트림은 드라이버의 바이트 문자열입니다. 위젯을 표시하는 데 가장 적합한 위젯은 위젯에 넣기 전에 중간 변환을해야합니까? 이렇게하려면 내 위젯을 작성해야합니까?python mjpeg 스트림 용 GTK 컨테이너
0
A
답변
2
GTK +에는 비디오를 디코딩하고 렌더링 할 수있는 기본 위젯이 포함되어 있지 않습니다.
GTK +와 동일한 GObject 프레임 워크를 기반으로 제작 된 스트리밍 미디어 툴킷 인 GStreamer을 조사해야합니다.
X11을 사용하여 비디오를 렌더링 할 수있는 GstXvImageSink이 있으며 GTK + 위젯에 렌더링되도록 구성 할 수 있어야합니다.
1
이 예제는 gstreamer를 시작하는 데 도움이되었습니다.이 예제는 웹캠 스트림을 잡아서 위젯에 표시하는 방법을 보여줍니다.
http://pygstdocs.berlios.de/pygst-tutorial/webcam-viewer.html
0
MJPEG 스트림을 보여주기 위해 이미지 위젯을 사용할 수 있습니다.
배경 스레드를 시작하고 그것을 스트림을 읽게하고 gtk.gdk.PixbufLoader
및 image_widget.set_from_pixbuf
예를 들어
사용하여 이미지를 업데이트
for frame in self.get_raw_frame():
loader = gtk.gdk.PixbufLoader('jpeg')
loader.write(frame)
loader.close()
pixbuf = loader.get_pixbuf()
# Schedule image update to happen in main thread
gobject.idle_add(self.widget.set_from_pixbuf, pixbuf)
전체 작업 예는 여기 : https://gist.github.com/mic159/fa2181a69f9119871b87
autovideosink가 수도 또한 볼만한 가치가 있습니다. – XTL