<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="margin: 0px;" class="">Hi!</div><div style="margin: 0px;" class=""><br class=""></div><div style="margin: 0px;" class="">I have been using this commandline so far  (basically raw audio+video are compressed into file and also into rtspclientsink with different bitrates): </div>
<pre style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></pre><pre style="margin-top: 0px; margin-bottom: 0px;" class="">
<pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#c0c0c0;" class="">                </span><span style=" color:#008000;" class="">"imxv4l2videosrc</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">device=/dev/video0</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">imx-capture-mode=4</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">fps-n=30</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">tee</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">name=rawVideo</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">"</span></pre><pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#c0c0c0;" class="">                </span><span style=" color:#008000;" class="">"alsasrc</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">audio/x-raw,format=S16LE,rate=48000,channels=1</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">audioconvert</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">tee</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">name=rawAudio</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">"</span></pre><pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#008000;" class="">//</span></pre><pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#c0c0c0;" class="">                </span><span style=" color:#008000;" class="">"rawVideo.</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">queue</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">imxvpuenc_h264</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">bitrate={streamVideoBitrate}</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">video/x-h264,profile=baseline</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">h264parse</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">queue</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">rtspsink.</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">"</span></pre><pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#c0c0c0;" class="">                </span><span style=" color:#008000;" class="">"rawAudio.</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">queue</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">imxmp3audioenc</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">bitrate={streamAudioBitrate}</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">mpegaudioparse</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">queue</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class="">  </span><span style=" color:#008000;" class="">rtspsink.</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">"</span></pre><pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#c0c0c0;" class="">                </span><span style=" color:#008000;" class="">"rtspclientsink</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">location=rtsp://{streamIP}:{streamPort}/test</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">profiles=4</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">name=rtspsink</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">latency=3000</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">"</span>;</pre><pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#008000;" class="">//</span></pre><pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#c0c0c0;" class="">                </span><span style=" color:#008000;" class="">"rawVideo.</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">queue</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">imxvpuenc_h264</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">bitrate=5000</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">video/x-h264,profile=baseline</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">h264parse</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">queue</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">mux.</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">"</span></pre><pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#c0c0c0;" class="">                </span><span style=" color:#008000;" class="">"rawAudio.</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">queue</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">imxmp3audioenc</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">bitrate=160</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">mpegaudioparse</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">queue</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">mux.</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">"</span></pre><pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#c0c0c0;" class="">                </span><span style=" color:#008000;" class="">"mpegtsmux</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">name=mux</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">!</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">multifilesink</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">location=/storage/video_{datetime}_%04d.ts</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">next-file=4</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">max-file-size=10000000</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">"</span></pre><div class=""><br class=""></div></pre><div class=""><br class=""></div><div class="">Now this commandline has problem. When internet connection fails for a second, rtspclientsink tears down everything - also writing to files. I want that when internet fails, audio+video is still being captured into files. Currently I have different commandline without rtspclientsink branches that I use when there is no internet.</div><div class=""><br class=""></div><div class="">I am trying to rewrite this in C, but so that I intercept rtspclientsink having no connection and dynamically unpluging RTSP branches of the pipeline.</div><div class=""><br class=""></div><div class="">Something like this is correct way to do it?</div><div class=""><br class=""></div><div class="">* wait on bus for error message from rtspclientsink</div><div class="">* when error comes, set all elements from q1 and q3 to rtspclientsink to NULL</div><div class="">* also remove those elements from bin</div><div class="">* wait 10s to retry connection</div><div class="">* dynamically add all elements that were removed </div><div class="">* set set their status to PLAYING</div><div class=""><br class=""></div><div class="">I have tried something like this. I get no errors, but no luck getting stream going. </div><div class="">Also, I know there is an example for dynamically pluging things, but that did not help me so much to get my thing running.</div><div class=""><br class=""></div><div class="">Tonu</div></body></html>