2020-12-04 19:10:51 +00:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
import sys
|
|
|
|
|
|
|
|
import gi
|
|
|
|
|
|
|
|
gi.require_version('GLib', '2.0')
|
|
|
|
gi.require_version('GObject', '2.0')
|
|
|
|
gi.require_version('Gst', '1.0')
|
|
|
|
|
|
|
|
from gi.repository import Gst, GObject, GLib
|
|
|
|
|
|
|
|
pipeline = None
|
|
|
|
bus = None
|
|
|
|
message = None
|
|
|
|
|
|
|
|
# initialize GStreamer
|
|
|
|
Gst.init(sys.argv[1:])
|
|
|
|
|
|
|
|
# build the pipeline
|
|
|
|
pipeline = Gst.parse_launch(
|
2023-04-06 17:28:33 +00:00
|
|
|
"playbin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm"
|
2020-12-04 19:10:51 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
# start playing
|
|
|
|
pipeline.set_state(Gst.State.PLAYING)
|
|
|
|
|
|
|
|
# wait until EOS or error
|
|
|
|
bus = pipeline.get_bus()
|
|
|
|
msg = bus.timed_pop_filtered(
|
|
|
|
Gst.CLOCK_TIME_NONE,
|
|
|
|
Gst.MessageType.ERROR | Gst.MessageType.EOS
|
|
|
|
)
|
|
|
|
|
|
|
|
# free resources
|
|
|
|
pipeline.set_state(Gst.State.NULL)
|