<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Hi,</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">On Linux, I am able to mux the streams from 2 different V4L2 webcams into a Matroska container with the following pipeline:</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0"></p>
<div><b>gst-launch-1.0 -v -e \<br>
v4l2src device=/dev/video2 io-mode=4 \<br>
! 'video/x-raw, format=(string)UYVY, width=(int)160, height=(int)120' \<br>
! videoconvert \<br>
! 'video/x-raw, format=(string)NV12, width=(int)160, height=(int)120' \<br>
! ducatih264enc \<br>
! queue \<br>
! "video/x-h264,width=160,height=120" \<br>
! h264parse \<br>
! queue \<br>
! mux. \<br>
v4l2src device=/dev/video1 \<br>
! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \<br>
! 'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, framerate=30/1' \<br>
! videoconvert \<br>
! 'video/x-raw, format=(string)NV12, width=(int)640, height=(int)480' \<br>
! ducatih264enc \<br>
! queue \<br>
! "video/x-h264,width=640,height=480" \<br>
! h264parse \<br>
! queue \<br>
! mux. \<br>
matroskamux name=mux min-index-interval=1000000000 \<br>
! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \<br>
! filesink location=test-video.mkv</b></div>
<p></p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">Now I want to be able to exract one of those video streams like shown in:
<a href="https://gstreamer.freedesktop.org/documentation/tutorials/basic/gstreamer-tools.html" class="OWAAutoLink" id="LPlnk219541" previewremoved="true">
https://gstreamer.freedesktop.org/documentation/tutorials/basic/gstreamer-tools.html</a></p>
<div id="LPBorder_GT_15387433572200.9303404650158578" style="margin-bottom: 20px; overflow: auto; width: 100%; text-indent: 0px;">
<table id="LPContainer_15387433572140.3571432019326908" style="width: 90%; background-color: rgb(255, 255, 255); position: relative; overflow: auto; padding-top: 20px; padding-bottom: 20px; margin-top: 20px; border-top: 1px dotted rgb(200, 200, 200); border-bottom: 1px dotted rgb(200, 200, 200);" role="presentation" cellspacing="0">
<tbody>
<tr style="border-spacing: 0px;" valign="top">
<td id="TextCell_15387433572170.1681418491593224" style="vertical-align: top; position: relative; padding: 0px; display: table-cell;" colspan="2">
<div id="LPRemovePreviewContainer_15387433572170.128496482420985"></div>
<div id="LPTitle_15387433572170.8996430298818052" style="top: 0px; color: rgb(100, 190, 73); font-weight: 400; font-size: 21px; font-family: "wf_segoe-ui_light", "Segoe UI Light", "Segoe WP Light", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; line-height: 21px;">
<a id="LPUrlAnchor_15387433572180.908132188115466" style="text-decoration: none;" href="https://gstreamer.freedesktop.org/documentation/tutorials/basic/gstreamer-tools.html" target="_blank">Basic tutorial 10: GStreamer tools</a></div>
<div id="LPMetadata_15387433572190.35715411464253577" style="margin: 10px 0px 16px; color: rgb(102, 102, 102); font-weight: 400; font-family: "wf_segoe-ui_normal", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; line-height: 14px;">
gstreamer.freedesktop.org</div>
<div id="LPDescription_15387433572200.3841186341215338" style="display: block; color: rgb(102, 102, 102); font-weight: 400; font-family: "wf_segoe-ui_normal", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; line-height: 20px; max-height: 100px; overflow: hidden;">
Basic tutorial 10: GStreamer tools Goal. GStreamer comes with a set of tools which range from handy to absolutely essential. There is no code in this tutorial, just sit back and relax, and we will teach you:</div>
</td>
</tr>
</tbody>
</table>
</div>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">I am trying to use the pipeline:</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0"><span><b>gst-launch-1.0 filesrc location=test-video.mkv ! matroskademux name=d d.video_00 ! queue ! video/x-h264 ! queue ! h264parse ! ducatih264dec ! waylandsink sync=false</b></span></p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">The problem is that all variations of this that I try give a "Delayed linking failed" error - here is an example:</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0"></p>
<div><b>Setting pipeline to PAUSED ...[68219.713998] omap-iommu 55082000.mmu: 55082000.mmu: version 2.1</b><br>
<b>Pipeline is PREROLLING ...<br>
WARNING: from element /GstPipeline:pipeline0/GstMatroskaDemux:d: Delayed linking failed.<br>
Additional debug info:<br>
../../../gstreamer-1.12.2/gst/parse/grammar.y(510): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstMatroskaDemux:d:<br>
failed delayed linking pad video_00 of GstMatroskaDemux named d to some pad of GstQueue named queue0<br>
ERROR: from element /GstPipeline:pipeline0/GstMatroskaDemux:d: Internal data stream error.<br>
Additional debug info:<br>
../../../gst-plugins-good-1.12.2/gst/matroska/matroska-demux.c(4799): gst_matroska_demux_loop (): /GstPipeline:pipeline0/GstMatroskaDemux:d:<br>
streaming stopped, reason not-linked (-1)<br>
ERROR: pipeline doesn't want to preroll.<br>
Setting pipeline to NULL ...<br>
Freeing pipeline ...</b></div>
<div><b><br>
</b></div>
<div>How can I extract one video stream from the matroska file? Thanks.<br>
<b></b></div>
<br>
<p></p>
</div>
<hr>
<p style="font-size:8pt; line-height:10pt;font-style:italic;font-family: 'Cambria','times roman',serif;">
Please be advised that this email may contain confidential information. If you are not the intended recipient, please notify us by email by replying to the sender and delete this message. The sender disclaims that the content of this email constitutes an offer
to enter into, or the acceptance of, any agreement; provided that the foregoing does not invalidate the binding effect of any digital or other electronic reproduction of a manual signature that is included in any attachment.
</p>
</body>
</html>