RTMP h264/speex to HLS h264/aac

pablo platt pablo.platt at gmail.com
Wed Oct 8 14:31:18 PDT 2014


Hi,

I'm trying to transcode RTMP h264/speex stream to h264/aac HLS segments.
gstreamer 1.2.4 on Ubuntu 14.04
I can play the RTMP stream with playbin.
I think I'm missing some queues and caps but not sure where.
I'm getting gst_caps_can_intersect error.

This is the command and output:

gst-launch-1.0 -v rtmpsrc name=rtmpsrc
location="rtmp:/localhsot/app/stream" ! \	flvdemux name=demux
\	demux.video ! mux.  \	demux.audio ! speexdec ! audioconvert !
voaacenc ! aacparse mux. \	mpegtsmux name=mux ! hlssinkSetting
pipeline to PAUSED ...Pipeline is PREROLLING
.../GstPipeline:pipeline0/GstSpeexDec:speexdec0.GstPad:sink: caps =
audio/x-speex, streamheader=(buffer)<
5260616552202020312e312e321200000000000000000000000000000100000050000000803f0000010000000300000001000000ffffffff500000000000000001000000000000000000000000000000,
4e5f20536f6d6d656e746300 >, rate=(int)5512,
channels=(int)1/GstPipeline:pipeline0/GstSpeexDec:speexdec0.GstPad:src:
caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved,
rate=(int)16000,
channels=(int)1/GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src:
caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved,
rate=(int)16000,
channels=(int)1/GstPipeline:pipeline0/GstVoAacEnc:voaacenc0.GstPad:sink:
caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved,
rate=(int)16000,
channels=(int)1/GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink:
caps = audio/x-raw, format=(string)S16LE, layout=(string)interleaved,
rate=(int)16000,
channels=(int)1/GstPipeline:pipeline0/GstVoAacEnc:voaacenc0.GstPad:src:
caps = audio/mpeg, mpegversion=(int)4, channels=(int)1,
rate=(int)16000, stream-format=(string)raw, level=(string)1,
base-profile=(string)lc, profile=(string)lc,
codec_data=(buffer)1408(gst-launch-1.0:10878): GStreamer-CRITICAL **:
gst_caps_can_intersect: assertion 'GST_IS_CAPS (caps2)'
failed(gst-launch-1.0:10878): GStreamer-CRITICAL **:
gst_caps_can_intersect: assertion 'GST_IS_CAPS (caps2)'
failed(gst-launch-1.0:10878): GStreamer-CRITICAL **:
gst_mini_object_unref: assertion 'mini_object != NULL'
failed/GstPipeline:pipeline0/GstAacParse:aacparse0.GstPad:src: caps =
audio/mpeg, mpegversion=(int)4, channels=(int)1, rate=(int)16000,
stream-format=(string)adts, level=(string)1, base-profile=(string)lc,
profile=(string)lc, codec_data=(buffer)1408,
framed=(boolean)true/GstPipeline:pipeline0/GstAacParse:aacparse0.GstPad:sink:
caps = audio/mpeg, mpegversion=(int)4, channels=(int)1,
rate=(int)16000, stream-format=(string)raw, level=(string)1,
base-profile=(string)lc, profile=(string)lc,
codec_data=(buffer)1408ERROR: from element
/GstPipeline:pipeline0/GstRTMPSrc:rtmpsrc: Internal data flow
error.Additional debug info:gstbasesrc.c(2865): gst_base_src_loop ():
/GstPipeline:pipeline0/GstRTMPSrc:rtmpsrc:streaming task paused,
reason not-linked (-1)ERROR: pipeline doesn't want to preroll.Setting
pipeline to NULL
.../GstPipeline:pipeline0/GstAacParse:aacparse0.GstPad:src: caps =
NULL/GstPipeline:pipeline0/GstAacParse:aacparse0.GstPad:sink: caps =
NULL/GstPipeline:pipeline0/GstVoAacEnc:voaacenc0.GstPad:src: caps =
NULL/GstPipeline:pipeline0/GstVoAacEnc:voaacenc0.GstPad:sink: caps =
NULL/GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src:
caps = NULL/GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink:
caps = NULL/GstPipeline:pipeline0/GstSpeexDec:speexdec0.GstPad:src:
caps = NULL/GstPipeline:pipeline0/GstSpeexDec:speexdec0.GstPad:sink:
caps = NULL/GstPipeline:pipeline0/GstFlvDemux:demux.GstPad:video: caps
= NULL/GstPipeline:pipeline0/GstFlvDemux:demux.GstPad:audio: caps =
NULLFreeing pipeline ...

Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20141009/d5ed9901/attachment.html>


More information about the gstreamer-devel mailing list