Hello,
I am trying to transcode a video that is using a transport stream container. I can decode the video using one pipeline the success case. When I try to name the demux video I have a failure that says no more pads. Can someone tell me what is going wrong? Failure Case: gst-launch-1.0 -v filesrc location=uhd.trp ! tsdemux name=demux demux.video_0 ! queue ! h265parse ! omxh265dec ! nvvidconv ! 'video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc profile=8 ! qtmux name=mux ! filesink location=uhd1280x720.mp4 Setting pipeline to PAUSED ... Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ... WARNING: from element /GstPipeline:pipeline0/GstTSDemux:demux: Delayed linking failed. Additional debug info: ./grammar.y(506): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstTSDemux:demux: failed delayed linking pad video_0 of GstTSDemux named demux to some pad of GstQueue named queue0 ERROR: from element /GstPipeline:pipeline0/GstTSDemux:demux: Internal data stream error. Additional debug info: mpegtsbase.c(1388): mpegts_base_loop (): /GstPipeline:pipeline0/GstTSDemux:demux: stream stopped, reason not-linked ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... /GstPipeline:pipeline0/GstTSDemux:demux.GstPad:video_0031: caps = "NULL" /GstPipeline:pipeline0/GstTSDemux:demux.GstPad:audio_0034: caps = "NULL" Freeing pipeline ... Success Case: gst-launch-1.0 -v filesrc location=uhd.trp ! tsdemux ! queue ! h265parse ! omxh265dec ! nvvidconv ! 'video/x-raw(memory:NVMM), width=(i[36/1983$ height=(int)720, format=(string)I420' ! omxh264enc profile=8 ! qtmux name=mux ! filesink location=uhd1280x720.mp4 Setting pipeline to PAUSED ... Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ... /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = "video/x-h265\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)nal" /GstPipeline:pipeline0/GstH265Parse:h265parse0.GstPad:sink: caps = "video/x-h265\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)nal" /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = "video/x-h265\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)nal" /GstPipeline:pipeline0/GstH265Parse:h265parse0.GstPad:src: caps = "video/x-h265\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)au\,\ width\=\(int\)3840\,\ height$ =\(int\)2160\,\ framerate\=\(fraction\)30000/1001\,\ parsed\=\(boolean\)true\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ profile\=\(string\)main-10\,\ tier\=\(string\)main\,\ level$ =\(string\)5.1" NvMMLiteOpen : Block : BlockType = 279 TVMR: NvMMLiteTVMRDecBlockOpen: 7580: NvMMLiteBlockOpen NvMMLiteBlockCreate : Block : BlockType = 279 /GstPipeline:pipeline0/GstOMXH265Dec-omxh265dec:omxh265dec-omxh265dec0.GstPad:sink: caps = "video/x-h265\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)au\,\ wid$ h\=\(int\)3840\,\ height\=\(int\)2160\,\ framerate\=\(fraction\)30000/1001\,\ parsed\=\(boolean\)true\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ profile\=\(string\)main-10\,\ tier$ =\(string\)main\,\ level\=\(string\)5.1" TVMR: cbBeginSequence: 1166: BeginSequence 3840x2160, bVPR = 0, fFrameRate = 0.000000 TVMR: BitDepthLuma = 10, BitDepthChroma = 10 TVMR: LowCorner Frequency = 345000 TVMR: cbBeginSequence: 1545: DecodeBuffers = 6, pnvsi->eCodec = 10, codec = 9 TVMR: cbBeginSequence: 1606: Display Resolution : (3840x2160) TVMR: cbBeginSequence: 1607: Display Aspect Ratio : (3840x2160) TVMR: cbBeginSequence: 1649: ColorFormat : 5 TVMR: cbBeginSequence:1654 ColorSpace = NvColorSpace_YCbCr709_ER TVMR: cbBeginSequence: 1790: SurfaceLayout = 3 TVMR: cbBeginSequence: 1868: NumOfSurfaces = 10, InteraceStream = 0, InterlaceEnabled = 0, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1, BitDepthForSurface = 8 LumaBitDepth = 0, ChromaBitDepth = 0, ChromaFormat = 5 Allocating new output: 3840x2160 (x 12), ThumbnailMode = 0 /GstPipeline:pipeline0/GstOMXH265Dec-omxh265dec:omxh265dec-omxh265dec0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)3840\,\ height\=\(int\)2160\,\ i$ terlace-mode\=\(string\)progressive\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ chroma-site\=\(string\)mpeg2\,\ colorimetry\=\(string\)bt2020\,\ framerate\=\(fraction\)30000/1001" /GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = "video/x-raw\(memory:NVMM\)\,\ width\=\(int\)1280\,\ height\=\(int\)720\,\ interlace-mode\=\(string\)progressive\,\ $ ixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)30000/1001\,\ format\=\(string\)I420" _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Mon, 2017-01-16 at 11:44 -0500, Rand Graham wrote:
Hi, > I am trying to transcode a video that is using a transport stream > container. I can decode the video using one pipeline the success > case. When I try to name the demux video I have a failure that says > no more pads. > > > Can someone tell me what is going wrong? > > Failure Case: > > gst-launch-1.0 -v filesrc location=uhd.trp ! tsdemux name=demux > demux.video_0 ! queue ! h265parse ! omxh265dec ! nvvidconv ! > 'video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, > format=(string)I420' ! omxh264enc profile=8 ! qtmux name=mux ! > filesink location=uhd1280x720.mp4 > > > WARNING: ... > failed delayed linking pad video_0 of GstTSDemux named demux to some > pad of GstQueue named queue0 > > ..stream stopped, reason not-linked > ERROR: pipeline doesn't want to preroll. > Setting pipeline to NULL ... > /GstPipeline:pipeline0/GstTSDemux:demux.GstPad:video_0031: caps = > "NULL" > /GstPipeline:pipeline0/GstTSDemux:demux.GstPad:audio_0034: caps = > "NULL" You're using a name (video_0) that doesn't exist. The pad names of demuxers vary from demuxer to demuxer, and might sometimes also differ from version to version. In this case that first video pad is called video_0031 as you can see at the end. It's generally best not to specify pad names unless you have a good reason to do so. Cheers -Tim -- Tim Müller, Centricular Ltd - http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi,
Thank you for your reply. I am trying to follow some examples that nVidia provided and modify them to work with a different container format. Their example used the qtdemux. I am naming the pads because I also want to include the audio stream in the resulting file. Based on your reply I am able to transcode the video using video_0031. However, I am still failing to pass through the audio with the no more pads error. Can you tell me why this pipeline is failing? gst-launch-1.0 -v filesrc location=uhd.trp ! tsdemux name=demux demux.video_0031 ! queue ! h265parse ! omxh265dec ! nvvidconv ! 'video/x-raw(mem ory:NVMM), width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc profile=8 ! qtmux name=mux ! filesink location=uhd1280x720.mp4 demux.audio_0034 ! queue ! aacparse ! mux.audio_0034 Setting pipeline to PAUSED ... Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ... WARNING: from element /GstPipeline:pipeline0/GstTSDemux:demux: Delayed linking failed. Additional debug info: ./grammar.y(506): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstTSDemux:demux: failed delayed linking pad audio_0034 of GstTSDemux named demux to some pad of GstQueue named queue1 /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = "video/x-h265\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)nal" /GstPipeline:pipeline0/GstH265Parse:h265parse0.GstPad:sink: caps = "video/x-h265\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)nal" /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = "video/x-h265\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)nal" /GstPipeline:pipeline0/GstH265Parse:h265parse0.GstPad:src: caps = "video/x-h265\,\ stream-format\=\(string\)byte-stream\,\ alignment\=\(string\)au\,\ width\=\(int\)3840\,\ height\ =\(int\)2160\,\ framerate\=\(fraction\)30000/1001\,\ parsed\=\(boolean\)true\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ profile\=\(string\)main-10\,\ tier\=\(string\)main\,\ level\ =\(string\)5.1" NvMMLiteOpen : Block : BlockType = 279 Thanks, Rand ________________________________________ From: gstreamer-devel [[hidden email]] On Behalf Of Tim Müller [[hidden email]] Sent: Monday, January 16, 2017 11:40 AM To: [hidden email] Subject: Re: tsdemux no more pads > /GstPipeline:pipeline0/GstTSDemux:demux.GstPad:video_0031: caps = > "NULL" > /GstPipeline:pipeline0/GstTSDemux:demux.GstPad:audio_0034: caps = > "NULL" You're using a name (video_0) that doesn't exist. The pad names of demuxers vary from demuxer to demuxer, and might sometimes also differ from version to version. In this case that first video pad is called video_0031 as you can see at the end. It's generally best not to specify pad names unless you have a good reason to do so. Cheers -Tim -- Tim Müller, Centricular Ltd - http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |