<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 class="" style="margin: 0px;">Hi!</div><div class="" style="margin: 0px;"><br class=""></div><div class="" style="margin: 0px;">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 class="" style="margin-top: 0px; margin-bottom: 0px;"><br class=""></pre><pre class="" style="margin-top: 0px; margin-bottom: 0px;"><pre class="" style="margin-top: 0px; margin-bottom: 0px;"><span class="" style="color: rgb(192, 192, 192);">                </span><span class="" style="color: rgb(0, 128, 0);">"imxv4l2videosrc</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">device=/dev/video0</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">imx-capture-mode=4</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">fps-n=30</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">tee</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">name=rawVideo</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">"</span></pre><pre class="" style="margin-top: 0px; margin-bottom: 0px;"><span class="" style="color: rgb(192, 192, 192);">                </span><span class="" style="color: rgb(0, 128, 0);">"alsasrc</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">audio/x-raw,format=S16LE,rate=48000,channels=1</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">audioconvert</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">tee</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">name=rawAudio</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">"</span></pre><pre class="" style="margin-top: 0px; margin-bottom: 0px;"><span class="" style="color: rgb(0, 128, 0);">//</span></pre><pre class="" style="margin-top: 0px; margin-bottom: 0px;"><span class="" style="color: rgb(192, 192, 192);">                </span><span class="" style="color: rgb(0, 128, 0);">"rawVideo.</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">queue</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">imxvpuenc_h264</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">bitrate={streamVideoBitrate}</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">video/x-h264,profile=baseline</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">h264parse</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">queue</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">rtspsink.</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">"</span></pre><pre class="" style="margin-top: 0px; margin-bottom: 0px;"><span class="" style="color: rgb(192, 192, 192);">                </span><span class="" style="color: rgb(0, 128, 0);">"rawAudio.</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">queue</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">imxmp3audioenc</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">bitrate={streamAudioBitrate}</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">mpegaudioparse</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">queue</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);">  </span><span class="" style="color: rgb(0, 128, 0);">rtspsink.</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">"</span></pre><pre class="" style="margin-top: 0px; margin-bottom: 0px;"><span class="" style="color: rgb(192, 192, 192);">                </span><span class="" style="color: rgb(0, 128, 0);">"rtspclientsink</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">location=rtsp://{streamIP}:{streamPort}/test</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">profiles=4</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">name=rtspsink</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">latency=3000</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">"</span>;</pre><pre class="" style="margin-top: 0px; margin-bottom: 0px;"><span class="" style="color: rgb(0, 128, 0);">//</span></pre><pre class="" style="margin-top: 0px; margin-bottom: 0px;"><span class="" style="color: rgb(192, 192, 192);">                </span><span class="" style="color: rgb(0, 128, 0);">"rawVideo.</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">queue</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">imxvpuenc_h264</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">bitrate=5000</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">video/x-h264,profile=baseline</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">h264parse</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">queue</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">mux.</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">"</span></pre><pre class="" style="margin-top: 0px; margin-bottom: 0px;"><span class="" style="color: rgb(192, 192, 192);">                </span><span class="" style="color: rgb(0, 128, 0);">"rawAudio.</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">queue</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">imxmp3audioenc</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">bitrate=160</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">mpegaudioparse</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">queue</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">mux.</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">"</span></pre><pre class="" style="margin-top: 0px; margin-bottom: 0px;"><span class="" style="color: rgb(192, 192, 192);">                </span><span class="" style="color: rgb(0, 128, 0);">"mpegtsmux</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">name=mux</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">!</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">multifilesink</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">location=/storage/video_{datetime}_%04d.ts</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">next-file=4</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">max-file-size=10000000</span><span class="" style="color: rgb(192, 192, 192);"> </span><span class="" style="color: rgb(0, 128, 0);">"</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>