title: libvlc stream part of screen
body: <p>I want to stream a part of screen using vlc library. I wrote a small example:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;cstdlib&gt;
  
  #include &lt;vlc/vlc.h&gt;
  
  
  int main(int argc, char**argv)
  {
      libvlc_instance_t * inst = libvlc_new(argc, argv);
      libvlc_vlm_add_broadcast(inst, "mybroad",
              "screen://", "#transcode{vcodec=h264, venc=x264,vb=0,scale=0, acodec=mpga,ab=128,channels=2, samplerate=44100}:http{mux=ffmpeg{mux=flv}, dst=:7777/}",
              0, NULL, 1, 0);
      libvlc_vlm_play_media(inst, "mybroad");
      std::cout &lt;&lt; "ready" &lt;&lt; std::endl;
      // next two lines - it just for waitint
      int i;
      std::cin &gt;&gt; i;
      // omit the code that frees libvlc
      return 0;
  }
  </code></pre>
  
  <p>This code stream all my screen. 
  I can stream a part of screen, if I do it in a console:</p>
  
  <pre><code>vlc -I "dummy" screen:// --screen-left=0 --screen-top=0 \
     --screen-width=640 --screen-height=480 \
     --screen-fps=1 \
     --sout '#transcode{vcodec=h264,vb=800,scale=1,\
       acodec=mpga,ab=128,channels=2,\
       samplerate=44100}:http{mux=ts,dst=:7777/}'
  </code></pre>
  
  <p>I tryed to do it in code by modifing one line:</p>
  
  <pre><code>libvlc_vlm_add_broadcast(inst, "mybroad",
                  "screen:// :screen-fps=24 :screen-top=0 :screen-left=0 :screen-width=320 :screen-height=240", 
                 "#transcode{vcodec=h264,venc=x264, vb=0,scale=0,acodec=mpga,ab=128,channels=2, samplerate=44100}:http{mux=ffmpeg{mux=flv},dst=:7777/}",
                  0, NULL, 1, 0);
  </code></pre>
  
  <p>But this modification has changed nothing.</p>
  
  <p>Honestly, I want to stream from one monitor (I have two monitors), but I can calculate the bounds of monitors.</p>