简体   繁体   English

使用Gsreamer的音频录制脚本质量很差

[英]Audio recording script quality bad using Gsreamer

Thanks to this amazing community i finished my project about capturing audio from an audio input and saving it to a faile using gstreamer 多亏了这个了不起的社区,我完成了有关从音频输入捕获音频并将其保存到gstreamer的项目。

Now i would like to refine the quality of the capture, since my script saves the audio as mono with 80kbps on 44100 hz. 现在,我想改善捕获的质量,因为我的脚本在44100 Hz上将音频保存为80kbps的单声道。 I would like to make it atleast stereo on 128 kbps 我想以128 kbps的速率制作至少立体声

here is the code. 这是代码。 PS feel free to use it anywhere you wish! PS随时随地可以使用它!

import gi
import datetime, time
import sys
import signal  
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst, Gtk
GObject.threads_init()
Gst.init(None)

pipeline = Gst.Pipeline()

autoaudiosrc = Gst.ElementFactory.make("autoaudiosrc", "autoaudiosrc")
audioconvert = Gst.ElementFactory.make("audioconvert", "audioconvert")
audioresample= Gst.ElementFactory.make("audioresample","audioresample")
vorbisenc = Gst.ElementFactory.make("vorbisenc", "vorbisenc")
oggmux = Gst.ElementFactory.make("oggmux", "oggmux")
filesink = Gst.ElementFactory.make("filesink", "filesink")
url = datetime.datetime.now()
audioresample.quality=10
filesink.set_property("location",url)
pipeline.add( autoaudiosrc)
pipeline.add( audioconvert)
pipeline.add( vorbisenc)
pipeline.add( oggmux)
pipeline.add( filesink)
pipeline.add( audioresample)

autoaudiosrc.link( audioconvert)
audioconvert.link( audioresample)
audioresample.link( vorbisenc)
vorbisenc.link( oggmux)
oggmux.link( filesink)

pipeline.set_state(Gst.State.PLAYING)
Gtk.main()
import gi
import datetime, time
import sys
import signal  
signal.alarm(15)
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst, Gtk
GObject.threads_init()
Gst.init(None)

pipeline = Gst.Pipeline()

autoaudiosrc = Gst.ElementFactory.make("autoaudiosrc", "autoaudiosrc")
audioconvert = Gst.ElementFactory.make("audioconvert", "audioconv")
audioresample= Gst.ElementFactory.make("audioresample","audioresample")
vorbisenc = Gst.ElementFactory.make("vorbisenc", "vorbisenc")
oggmux = Gst.ElementFactory.make("oggmux", "oggmux")
filesink = Gst.ElementFactory.make("filesink", "filesink")
url = datetime.datetime.now()

audioresample.set_property("quality", 10) 
vorbisenc.set_property("quality", 1)

filesink.set_property("location",url)
pipeline.add( autoaudiosrc)
pipeline.add( audioconvert)
pipeline.add( vorbisenc)
pipeline.add( oggmux)
pipeline.add( filesink)
pipeline.add( audioresample)

autoaudiosrc.link( audioconvert)
audioconvert.link( audioresample)
audioresample.link(vorbisenc)
vorbisenc.link( oggmux)
oggmux.link( filesink)

pipeline.set_state(Gst.State.PLAYING)

Gtk.main()

There,it's smooth and ok now, i like it ( i probably don't have to have audioconvert, but it smooths the quality a tad bit, was trying a lot of other things but this is the best quality i can get) 那里,现在很顺利,我很喜欢(我可能不必进行音频转换,但是它使质量略微降低了一点,尝试了很多其他方法,但这是我可以获得的最好的质量)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM