【问题标题】:Audio playback using Gstreamer on OS X在 OS X 上使用 Gstreamer 播放音频
【发布时间】:2015-10-01 20:04:20
【问题描述】:

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

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

gst-launch-1.0 文件rc location=test.mp3 !解码器!音频转换! 音频重采样!自动音频接收器

gst-launch-1.0 uridecodebin uri=file:///path/to/test.mp3 ! 音频转换!音频重采样!自动音频接收器

但总是得到这个输出:

将管道设置为 PAUSED ...
0:00:00.032003000 4120 0x7fe62bcd4900 WARN basesrc gstbasesrc.c:3470:void gst_base_src_start_complete(GstBaseSrc *, GstFlowReturn): 垫尚未激活 0:00:00.033290000 4120 0x7fe62bcd4900 WARN basesrc gstbasesrc.c:3470:void gst_base_src_start_complete(GstBaseSrc *, GstFlowReturn): 垫尚未激活 管道正在预滚...
0:00:00.106320000 4120 0x7fe62c032140 WARN 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 WARN audioresample gstaudioresample.c:1537:gboolean plugin_init(GstPlugin *):Orc 已禁用,无法对 int 与 float 重采样器进行基准测试
0:00:00.129217000 4120 0x7fe62c032140 WARN GST_PERFORMANCE gstaudioresample.c:1540:gboolean plugin_init(GstPlugin *): orc 已禁用,未进行基准测试
0:00:00.133383000 4120 0x7fe62c032140 WARN baseparse gstbaseparse.c:3264:void gst_base_parse_loop(GstPad *):错误:流停止,原因未协商
0:00:00.133718000 4120 0x7fe62c032140 WARN queue gstqueue.c:860:gboolean gst_queue_handle_sink_event(GstPad *, GstObject *, GstEvent *):错误:内部数据流错误。
错误:来自元素 /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 上解决此问题?

【问题讨论】:

  • 您使用的是什么 gstreamer 版本?听起来像一个错误..
  • @otopolsky gstreamer 1.4.5。可能是因为我在 VirtualBox 上使用 OS X 造成的问题?
  • this 是一个有趣的帖子 - 可能有点过时了.. 你也可以尝试新的稳定版本 1.6 也有改进的 OSX 支持.. 或者你可以尝试检查其他接收器像 sdlvideosink 或 glvideosink (你必须安装一些东西,它可能无法在 VirtualBox 中工作..)
  • @otopolsky 好的,谢谢!我会检查帖子,我会尝试使用这些水槽。但是我如何更新 gstreamer?我使用自制软件安装了它。
  • 我通过编译安装了 gstreamer 1.6(在 Linux 上).. 我还发现 this 我不知道它是否可用..

标签: macos virtualbox osx-mavericks gstreamer


【解决方案1】:

回复有点晚了,不过会放在这里以防其他人有同样的问题。

在 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多