hlssink and openh264
rand.graham at lge.com
Thu May 18 13:57:07 UTC 2017
I have seen the "delayed delayed linking failed no more pads error" before. I do not have a general solution for it. It is extremely frustrating.
In your specific case I would recommend a more explicit pipeline where you demux the audio stream and video stream into separate queues and process the audio and video separately. That is come up with a pipeline that does not use decodebin. Also, keep in mind for HLS you are going to need AAC audio.
Here is an example HLS pipeline that works for me.
// HLS Sink example
gst-launch-1.0 -v -e mpegtsmux name=m m. ! queue ! hlssink filesrc location=/home/rdg/data/the_canoe_h265.ts ! tsdemux name=d d. ! queue max-size-buffers=1200 max-size-buffers=0 max-size-time=0 ! h265parse ! mfxhevcdec ! videoconvert ! mfxvpp width=1280 height=720 ! mfxh264enc rate-control=cbr bitrate=1500 insert-aud=true ! "video/x-h264, stream-format=byte-stream, profile=high" ! m. d. ! queue max-size-buffers=1200 max-size-buffers=0 max-size-time=0 ! aacparse ! avdec_aac ! audioconvert ! voaacenc bitrate=128000 ! m.
I want to draw your attention to this part of the pipeline:
! aacparse ! avdec_aac ! audioconvert ! voaacenc bitrate=128000 ! m.
What this does is parse aac audio and then re encode it as aac audio. IIRC, I had to do this to avoid the no more pads error. I was unable to compose a pipeline that did not do the apparently extra work of transcoding AAC audio into AAC audio.
From: gstreamer-devel [gstreamer-devel-bounces at lists.freedesktop.org] On Behalf Of Jerry Geis [jerry.geis at gmail.com]
Sent: Thursday, May 18, 2017 7:08 AM
To: gstreamer-devel at lists.freedesktop.org
Subject: Re: hlssink and openh264
I am trying to run this command:
gst-launch-1.0 filesrc location=pirates_trailer.mov '!' decodebin '!' videoconvert '!' openh264enc '!' h264parse '!' mpegtsmux '!' hlssink playlist-root=http://192.168.1.8/hlssink location=/var/www/html/hlssink/hlssink.%05d.ts playlist-location=/var/www/html/hlssink/playlist.m3u8
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Missing element: video/x-fluendo-va decoder
WARNING: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Delayed linking failed.
Additional debug info:
./grammar.y(510): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0:
failed delayed linking some pad of GstDecodeBin named decodebin0 to some pad of GstVideoConvert named videoconvert0
and I get the above error.
I do have fluendo codecs installed.
What can I do about it ?
More information about the gstreamer-devel