[Bug 766267] RTP streaming of AAC/MP4A fails.

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu May 12 10:11:43 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=766267

Peter Maersk-Moller <pmaersk at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|NOTABUG                     |FIXED

--- Comment #10 from Peter Maersk-Moller <pmaersk at gmail.com> ---
Confirming setting caps for the udpsrc for audio to

audio_caps='application/x-rtp,media=audio,payload=96,clock-rate=44100,encoding-name=MP4A-LATM,cpresent=(string)0,config=(string)40002320'

works for streaming AAC using rtp as well as rtpbin for version 1.8.1.

I actually tried this before the initial report, but back then I omitted the
'(string)' qualifier for the config parameter. And it that case it failed.
First time ever I came across omitting a string qualifier for a parameter made
a difference, but I guess that is pure chance.

That said, when using the following receiver script and sender script, the
audio pauses for few hundred milliseconds every 2 seconds. Can anybody else
confirm this and should I open another bug report?

Thanks.

Receiver pipeline script
  VDEPAY=rtph264depay
 
audio_caps='application/x-rtp,media=audio,payload=96,clock-rate=44100,encoding-name=MP4A-LATM,cpresent=(string)0,config=(string)40002320'
  gst-launch-1.0 -v rtpbin name=rtpbin buffer-mode=slave                   \
        udpsrc do-timestamp=1 caps=$video_caps port=$port_video_rtp     !\
          rtpbin.recv_rtp_sink_0                                         \
        udpsrc port=$port_video_rtcp                                    !\
          rtpbin.recv_rtcp_sink_0                                        \
        udpsrc caps=$audio_caps port=$port_audio_rtp                    !\
          rtpbin.recv_rtp_sink_1                                         \
        udpsrc port=$port_audio_rtcp                                    !\
          rtpbin.recv_rtcp_sink_1                                        \
        rtpbin.                                                         !\
          $VDEPAY ! decodebin name=vdecoder                             !\
          videoconvert ! autovideosink                                   \
        rtpbin.                                                         !\
          decodebin name=adecoder ! audioconvert                        !\
          autoaudiosink

Sender pipeline script:
  port_base=14000
  port_video_rtp=$port_base
  port_video_rtcp=$(($port_base+1))
  port_audio_rtp=$(($port_base+2))
  port_audio_rtcp=$(($port_base+3))
  host=127.0.0.1
  AUDIOFORMATOUT="audio/mpeg,mpegversion=4,stream-format=raw"
 
AUDIOFORMAT="audio/x-raw,format=S16LE,layout=interleaved,rate=44100,channels=2"
  VIDSRC="videotestsrc is-live=1"
 
VIDEOFORMAT="video/x-raw,format=I420,pixel-aspect-ratio=1/1,interlace-mode=progressive,width=640,height=480,framerate=25/1"
 
VIDEOFORMATOUT="video/x-h264,alignment=au,stream-format=byte-stream,profile=main"
  gst-launch-1.0 -v rtpbin name=rtpbin                     \
        audiotestsrc is-live=1                          !\
        queue ! $AUDIOFORMAT                            !\
        audioconvert ! faac bitrate=128000 ! aacparse   !\
        $AUDIOFORMATOUT                                 !\
        rtpmp4apay                                      !\
        rtpbin.send_rtp_sink_1                           \
          rtpbin.send_rtp_src_1                         !\
          udpsink host=$host port=$port_audio_rtp        \
          rtpbin.send_rtcp_src_1                        !\
          udpsink host=$host port=$port_audio_rtcp sync=false async=false \
        videotestsrc is-live=1                          !\
        $VIDEOFORMAT                                    !\
        queue ! videoconvert                            !\
        x264enc bitrate=1500 tune=zerolatency speed-preset=2 key-int-max=60
bframes=0 !\
        $VIDEOFORMATOUT                                 !\
        h264parse ! rtph264pay                          !\
        rtpbin.send_rtp_sink_0                           \
          rtpbin.send_rtp_src_0                         !\
          udpsink host=$host port=$port_video_rtp        \
          rtpbin.send_rtcp_src_0                        !\
          udpsink host=$host port=$port_video_rtcp sync=false async=false

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list