【问题标题】:which gstreamer rtp payloader element should I use to wrap AAC audio?我应该使用哪个 gstreamer rtp payloader 元素来包装 AAC 音频?
【发布时间】:2018-03-01 19:56:41
【问题描述】:

我正在尝试找出合适的 gstreamer 元素,用于通过 RTP 传输 AAC 音频。

通过将 playbin 的点图转储到文件中,我可以得出结论,从 tsdemux 出来的大写字母是 audio/mpeg,mpegversion:2,stream-format:adts

如果我使用以下管道

gst-launch-1.0 -v filesrc location=$BA ! tsdemux ! audio/mpeg ! rtpmpapay ! filesink location=/tmp/test.rtp

失败了:

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1: caps = audio/mpeg
WARNING: from element /GstPipeline:pipeline0/GstTSDemux:tsdemux0: Delayed linking failed.
Additional debug info:
/var/tmp/portage/media-libs/gstreamer-1.12.3/work/gstreamer-1.12.3/gst/parse/grammar.y(510): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstTSDemux:tsdemux0:
failed delayed linking some pad of GstTSDemux named tsdemux0 to some pad of GstRtpMPAPay named rtpmpapay0
ERROR: from element /GstPipeline:pipeline0/GstTSDemux:tsdemux0: Internal data stream error.
Additional debug info:
/var/tmp/portage/media-libs/gst-plugins-bad-1.12.3/work/gst-plugins-bad-1.12.3/gst/mpegtsdemux/mpegtsbase.c(1613): mpegts_base_loop (): /GstPipeline:pipeline0/GstTSDemux:tsdemux0:
streaming stopped, reason not-linked (-1)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

我应该使用哪个 gstreamer 元素将 AAC 音频包装到 RTP 数据包中?

【问题讨论】:

    标签: gstreamer rtp aac


    【解决方案1】:

    我猜是rtpmp4apay: RTP MPEG4 audio payloader。也许你想要/需要aacparse 在有效载荷之前。

    【讨论】:

    • 我最终开始工作的管道是gst-launch-1.0 -v filesrc location=$BA ! tsdemux ! typefind ! aacparse ! rtpmp4apay ! filesink location=/tmp/test.rtp
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多