Вот команда, которую я пытаюсь повторить:
gst-launch filesrc location=test.flac ! flacdec ! lame ! filesink location=test.mp3
Когда я запускаю эту команду, она прекрасно работает. Я попытался повторить это, используя привязки Pythong, но безуспешно. Я не получаю никаких ошибок ни с одним из этих сценариев, но они не работают должным образом:
Когда я запускаю этот скрипт, я просто получаю пустой файл MP3:
import gst
pipeline = gst.parse_launch('filesrc location="test.flac" ! flacdec ! lame ! filesink location="test.mp3"')
pipeline.set_state(gst.STATE_PLAYING)
Когда я запускаю этот скрипт, я получаю поврежденный файл MP3:
import gst
converter = gst.Pipeline('converter')
source = gst.element_factory_make('filesrc', 'file-source')
source.set_property('location', 'test.flac')
decoder = gst.element_factory_make('flacdec', 'decoder')
encoder = gst.element_factory_make('lame', 'encoder')
sink = gst.element_factory_make('filesink', 'sink')
sink.set_property('location', 'test.mp3')
converter.add(source, decoder, encoder, sink)
source.link(sink)
converter.set_state(gst.STATE_PLAYING)
Кто-нибудь знает, что я делаю не так?