在OS X上使用Gstreamer进行音频播放

时间:2015-10-01 20:04:20

标签: macos virtualbox osx-mavericks gstreamer

我正在尝试使用这些管道在Mac OS X Mavericks(VirtualBox)上播放mp3音频:

  

gst-launch-1.0 playbin uri = file:///path/to/test.mp3

     

gst-launch-1.0 filesrc location = test.mp3! decodebin! audioconvert!   听觉样本! autoaudiosink

     

gst-launch-1.0 uridecodebin uri = file:///path/to/test.mp3!   audioconvert!听觉样本! autoaudiosink

但总是得到这个输出:

  

将管道设置为PAUSED ...
  0:00:00.032003000 4120 0x7fe62bcd4900 WARN basesrc gstbasesrc.c:3470:void gst_base_src_start_complete(GstBaseSrc *,GstFlowReturn):pad尚未激活   0:00:00.033290000 4120 0x7fe62bcd4900 WARN basesrc gstbasesrc.c:3470:void gst_base_src_start_complete(GstBaseSrc *,GstFlowReturn):pad尚未激活   管道是PREROLLING ......   
0:00:00.106320000 4120 0x7fe62c032140警告osxaudiosink gstosxaudiosink.c:601:gst_osx_audio_sink_allowed_caps:无法识别的通道:-1   
0:00:00.106584000 4120 0x7fe62c032140 WARN osxaudiosink gstosxaudiosink.c:601:gst_osx_audio_sink_allowed_caps:无法识别的通道:-1   
0:00:00.128755000 4120 0x7fe62c032140警告audioresample gstaudioresample.c:1537:gboolean plugin_init(GstPlugin *):Orc禁用,不能基准测试int与浮点重采样器   
0:00:00.129217000 4120 0x7fe62c032140警告 GST_PERFORMANCE gstaudioresample.c:1540:gboolean plugin_init(GstPlugin *): orc已禁用,未执行基准测试   
0:00:00.133383000 4120 0x7fe62c032140警告baseparse gstbaseparse.c:3264:void gst_base_parse_loop(GstPad *):错误:流停止,原因未协商   
0:00:00.133718000 4120 0x7fe62c032140 WARN队列gstqueue.c:860:gboolean gst_queue_handle_sink_event(GstPad *,GstObject *,GstEvent *):错误:内部数据流错误。   
错误:来自element / GstPlayBin:playbin0 / GstURIDecodeBin:uridecodebin0 / GstDecodeBin:decodebin0 / GstMpegAudioParse:mpegaudioparse0:GStreamer遇到一般流错误。   
0:00:00.134308000 4120 0x7fe62c032140 WARN queue gstqueue.c:860:gboolean gst_queue_handle_sink_event(GstPad *,GstObject *,GstEvent *):错误:流媒体任务已暂停,原因未协商(-4)   
附加调试信息:   
gstbaseparse.c(3264):void gst_base_parse_loop(GstPad *)():/ GstPlayBin:playbin0 / GstURIDecodeBin:uridecodebin0 / GstDecodeBin:decodebin0 / GstMpegAudioParse:mpegaudioparse0:   流媒体停止了,理由没有协商   
错误:管道不想预卷。   
将管道设置为NULL ...   
自由管道......

相同的管道在Windows 7上使用相同的音频正常工作。

如何在Mac OS X Mavericks上解决此问题?

1 个答案:

答案 0 :(得分:0)

来得晚一点,但是如果其他人有同样的问题,可以把它放在这里。

在Mac上,我们需要适当的管道和管道元素,例如解码器和接收器。 使用autoaudiosinkgstreamer将自动找到接收器。
或者,您可以提供特定于Mac的osxaudiosink

尝试

gst-launch-1.0 filesrc location=test.mp3 ! decodebin ! audioconvert !
audioresample ! autoaudiosink

gst-launch-1.0 uridecodebin uri=file:///path/to/test.mp3 !
audioconvert ! audioresample ! autoaudiosin