issue with spaces in filesink location
Pablo Rodríguez
oinos at web.de
Thu Dec 9 17:56:50 UTC 2021
Dear list,
I have the following sample:
#!/usr/bin/env python3
# coding: utf-8
import os, sys, gi
gi.require_version("Gtk", "3.0")
gi.require_version("Gst", "1.0")
from gi.repository import Gtk, Gdk, GObject, Gst
Gst.init(sys.argv)
class wreck:
def __init__(self):
# ~ self.audiofilename = sys.argv[1]
self.audiofilename = sys.argv[1].replace(" ", "%20")
self.win = Gtk.Window(Gtk.WindowType.TOPLEVEL)
self.vbox = Gtk.VBox()
self.win.add(self.vbox)
self.win.connect("destroy", Gtk.main_quit)
self.win.show_all()
self.win.connect('key-press-event', self.key_press_event)
self.player = Gst.parse_launch("autoaudiosrc ! audio/x-raw !
wavenc ! filesink location=" + self.audiofilename)
bus = self.player.get_bus()
bus.add_signal_watch()
bus.connect('message', self.on_message)
def on_message(self, bus, message):
t = message.type
if t == Gst.MessageType.EOS:
self.player.set_state(Gst.State.NULL)
Gtk.main_quit()
os.rename(self.audiofilename,
self.audiofilename.replace("%20", " "))
elif t == Gst.MessageType.ERROR:
err, debug = message.parse_error()
print ("Error: %s" % err, debug)
self.player.set_state(Gst.State.NULL)
def key_press_event(self, widget, event):
if event.keyval == Gdk.keyval_from_name("space"):
if self.player.get_state(0)[1] == Gst.State.NULL:
self.player.set_state(Gst.State.PLAYING)
elif self.player.get_state(0)[1] == Gst.State.PLAYING:
self.player.send_event(Gst.Event.new_eos())
def gtk_main_quit(self, widget, event):
Gtk.main_quit()
def main(self):
Gtk.main()
wk = wreck()
wk.main()
My error should have a simple fix, but how can I get that filesink
accepts URI to set the output file?
Otherwise, GStreamer seems to have problems with spaces in filenames.
Sorry for the very basic question, but I don’t have any idea on what I
am missing.
Many thanks for your help,
Pablo
More information about the gstreamer-devel
mailing list