title: ffmpeg records 5 frames per second on a device that cheese records at 20 fps
body: <p>Running the following <code>ffmpeg</code> capture on my built in webcam:</p>
  
  <pre><code>ffmpeg -f v4l2 -framerate 30 -video_size 1920x1080 -i /dev/video0 output.mkv
  </code></pre>
  
  <p>I get only 5 fps and see this message:</p>
  
  <pre><code>The driver changed the time per frame from 1/30 to 1/5
  </code></pre>
  
  <p>When I record using cheese I get what looks like 20 fps on that device. And <code>v4l2</code> seems to claim it can do 30 fps.</p>
  
  <pre><code>v4l2-ctl --list-formats-ext
  ioctl: VIDIOC_ENUM_FMT
      Index       : 0
      Type        : Video Capture
      Pixel Format: 'MJPG' (compressed)
      Name        : Motion-JPEG
          Size: Discrete 1920x1080
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 1280x720
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 800x600
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 640x480
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 640x360
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 640x480
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 160x120
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 320x240
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 640x480
              Interval: Discrete 0.033s (30.000 fps)
  
      Index       : 1
      Type        : Video Capture
      Pixel Format: 'YUYV'
      Name        : YUYV 4:2:2
          Size: Discrete 1920x1080
              Interval: Discrete 0.200s (5.000 fps)
          Size: Discrete 1280x720
              Interval: Discrete 0.100s (10.000 fps)
          Size: Discrete 800x600
              Interval: Discrete 0.050s (20.000 fps)
          Size: Discrete 640x480
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 640x360
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 640x480
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 160x120
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 320x240
              Interval: Discrete 0.033s (30.000 fps)
          Size: Discrete 640x480
              Interval: Discrete 0.033s (30.000 fps)
  </code></pre>
  
  <p>When I run ffmpeg:</p>
  
  <pre><code>Output #0, mjpeg, to 'output.mjpg':
    Metadata:
      encoder         : Lavf56.40.101
      Stream #0:0: Video: mjpeg, yuvj422p(pc), 1920x1080, q=2-31, 200 kb/s, 5 fps, 5 tbn, 5 tbc
      Metadata:
        encoder         : Lavc56.60.100 mjpeg
  </code></pre>
  
  <p>My guess is that it's recording in raw form from the device and doing the encoding in ffmpeg. If this is correct, how would I get ffmpeg to use the mjpeg native format?</p>