Recherche avancée

Médias (91)

Autres articles (103)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

Sur d’autres sites (9237)

  • No such file or directory Error with FFMPEG + CarrierWave screenshot method

    10 juillet 2013, par dodgerogers747

    I am using AWS CORS to upload videos to my site, all of which works as planned.

    I have the following model method which runs as an after_create callback (for speed) to take a screenshot from the video file on AWS. I plan to move this out into a delayed job but I don't think this will solve this particular issue. Please advise if mistaken.

    I use FFMPEG to take a screenshot from the AWS self.file location, I then send the file to CarrierWave by saving the file to self.screenshot where it is uploaded to AWS.

    Approx. 50% of the time it errors out with Errno::ENOENT - No such file or directory for the location of the screenshot image.

    How can I rectify my code to remove this error and how come it only occurs around 50% of the time ? If anyone needs more code just shout.

    video.rb

    after_create :take_screenshot

    mount_uploader :screenshot, ImageUploader

     def take_screenshot
       location = "#{Rails.root}/public/uploads/tmp/screenshots/#{unique}_#{File.basename(file)}.jpg"
       system `ffmpeg #{log_level} -i #{self.file} -ss 00:00:0#{time_frame} -vframes 1 #{location}`
       logger.debug "Trying to take screenshot from #{self.file}"
       #pass the actual file to CarrierWave to handle the image upload
       self.screenshot = File.open(location)
       self.save
       logger.debug "Deleting tmp file: #{location}: #{File.delete(location)}" if self.screenshot.present?
     end

    def unique
       (0..6).map{(65+rand(26)).chr}.join
     end

    def log_level
       "-loglevel panic"
     end

     def time_frame
       rand(0..3)
     end

    Stack trace :

    Started POST "/videos" for 127.0.0.1 at 2013-07-10 03:58:49 +0800
    Processing by VideosController#create as JS
     Parameters: {"utf8"=>"✓", "authenticity_token"=>"6M1Ia+Ag2E3HVKH2PO/p7jewxSpMPdWeVHGA933Bzjw=", "video"=>{"file"=>"http://bucketname.s3.amazonaws.com/uploads/video/file/671a87fb-91de-4eaf-a38a-1b25c51798e5/Good_7iron.m4v"}}
     User Load (0.3ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 9 LIMIT 1
      (0.1ms)  BEGIN
     SQL (0.2ms)  INSERT INTO `videos` (`created_at`, `file`, `question_id`, `screenshot`, `updated_at`, `user_id`) VALUES ('2013-07-09 19:58:49', 'http://bucketname.s3.amazonaws.com/uploads/video/file/671a87fb-91de-4eaf-a38a-1b25c51798e5/Good_7iron.m4v', NULL, NULL, '2013-07-09 19:58:49', 9)
    Trying to take screenshot from http://bucketname.s3.amazonaws.com/uploads/video/file/671a87fb-91de-4eaf-a38a-1b25c51798e5/Good_7iron.m4v
      (0.8ms)  ROLLBACK
    Completed 500 Internal Server Error in 3550ms

    Errno::ENOENT - No such file or directory - /Users/me/rails/project/public/uploads/tmp/screenshots/WCACLIC_Good_7iron.m4v.jpg:
     app/models/video.rb:24:in `initialize'
     app/models/video.rb:24:in `open'
     app/models/video.rb:24:in `take_screenshot'
  • rapid TS fragment ffmpeg decoding - memory leak

    9 août 2017, par NadavRub

    Environment :

    • Ubuntu 16.04 (x64)
    • C++
    • ffmpeg

    Use-case

    • Multiple MPEG-TS fragments are rapidly decoded ( numerous every sec )
    • The format of the TS fragments is dynamic and can’t be known ahead of time
    • The first A/V frames of each fragment are needed to be extracted

    Problem statement

    • The code bellow successfully decodes A/V, BUT, has a huge memory leak ( MBytes/sec )
    • According to the docs seems all memory is freed as it should ( does it... ? )

    Why do I get this huge mem leak, what am I missing in the following code snap ?

       struct MEDIA_TYPE {
           ffmpeg::AVMediaType eType;
           union {
               struct {
                   ffmpeg::AVPixelFormat   colorspace;
                   int                     width, height;
                   float                   fFPS;
               } video;
               struct : WAVEFORMATEX {
                   short sSampleFormat;
               } audio;
           } format;
       };

       struct FRAME {
           enum { MAX_PALNES = 3 + 1 };
           int         iStrmId;
           int64_t     pts;    // Duration in 90Khz clock resolution

           uint8_t**   ppData; // Null terminated
           int32_t*    pStride;// Zero terminated
       };

       HRESULT ProcessTS(IN Operation op, IN uint8_t* pTS, IN uint32_t uiBytes, bool(*cb)(IN const MEDIA_TYPE& mt, IN FRAME& frame, IN PVOID pCtx), IN PVOID pCbCtx)
       {
           uiBytes -= uiBytes % 188;// align to 188 packet size

           struct CONTEXT {
               uint8_t* pTS;
               uint32_t uiBytes;
               int32_t  iPos;
           } ctx = { pTS, uiBytes, 0 };

           LOGTRACE(TSDecoder, "ProcessTS(%d, 0x%.8x, %d, 0x%.8x, 0x%.8x), this=0x%.8x\r\n", (int)op, pTS, uiBytes, cb, pCbCtx, this);

           ffmpeg::AVFormatContext* pFmtCtx = 0;
           if (0 == (pFmtCtx = ffmpeg::avformat_alloc_context()))
               return E_OUTOFMEMORY;

           ffmpeg::AVIOContext* pIoCtx = ffmpeg::avio_alloc_context(pTS, uiBytes, 0, &ctx
                                                               , [](void *opaque, uint8_t *buf, int buf_size)->int {
                                                                       auto pCtx = (CONTEXT*)opaque;
                                                                       int size = pCtx->uiBytes;
                                                                       if (pCtx->uiBytes - pCtx->iPos < buf_size)
                                                                           size = pCtx->uiBytes - pCtx->iPos;
                                                                       if (size > 0) {
                                                                           memcpy(buf, pCtx->pTS + pCtx->iPos, size);
                                                                           pCtx->iPos += size;
                                                                       }
                                                                       return size;
                                                                   }
                                                               , 0
                                                               , [](void* opaque, int64_t offset, int whence)->int64_t {
                                                                   auto pCtx = (CONTEXT*)opaque;
                                                                   switch (whence)
                                                                       {
                                                                       case SEEK_SET:
                                                                       pCtx->iPos = offset;
                                                                       break;
                                                                   case SEEK_CUR:
                                                                       pCtx->iPos += offset;
                                                                       break;
                                                                   case SEEK_END:
                                                                       pCtx->iPos = pCtx->uiBytes - offset;
                                                                       break;
                                                                   case AVSEEK_SIZE:
                                                                       return pCtx->uiBytes;
                                                                   }
                                                                   return pCtx->iPos;
                                                               });

       pFmtCtx->pb = pIoCtx;

       int iRet = ffmpeg::avformat_open_input(&pFmtCtx, "fakevideo.ts", m_pInputFmt, 0);
       if (ERROR_SUCCESS != iRet) {
           assert(false);
           pFmtCtx = 0;// a user-supplied AVFormatContext will be freed on failure.
           return E_FAIL;
       }

       struct DecodeContext {
           ffmpeg::AVStream*   pStream;
           ffmpeg::AVCodec*    pDecoder;
           int                 iFramesProcessed;
       };

       HRESULT hr                  = S_OK;
       int     iStreamsProcessed   = 0;

       bool    bVideoFound         = false;
       int64_t ptsLast             = 0;
       int64_t dtsLast             = 0;

       auto pContext = (DecodeContext*)alloca(sizeof(DecodeContext) * pFmtCtx->nb_streams);
       for (unsigned int i = 0; i < pFmtCtx->nb_streams; i++) {
           assert(pFmtCtx->streams[i]->index == i);
           pContext[i].pStream         = pFmtCtx->streams[i];
           pContext[i].pDecoder        = ffmpeg::avcodec_find_decoder(pFmtCtx->streams[i]->codec->codec_id);
           pContext[i].iFramesProcessed= 0;
           if (0 == pContext[i].pDecoder)
               continue;
           if ((iRet = ffmpeg::avcodec_open2(pFmtCtx->streams[i]->codec, pContext[i].pDecoder, NULL)) < 0) {
               _ASSERT(FALSE);
               hr = E_FAIL;
               goto ErrExit;
           }
       }

       while (S_OK == hr) {
           ffmpeg::AVFrame* pFrame = 0;
           ffmpeg::AVPacket pkt;
           ffmpeg::av_init_packet(&pkt);
           if (ERROR_SUCCESS != (iRet = ffmpeg::av_read_frame(pFmtCtx, &pkt))) {
               hr = E_FAIL;
               break;
           }
           if ((0 == dtsLast) && (0 != pkt.dts))
               dtsLast = pkt.dts;
           if ((0 == ptsLast) && (0 != pkt.pts))
               ptsLast = pkt.pts;
           DecodeContext& ctx = pContext[pkt.stream_index];
           if (Operation::DECODE_FIRST_FRAME_OF_EACH_STREAM == op) {
               if (iStreamsProcessed == pFmtCtx->nb_streams) {
                   hr = S_FALSE;
                   goto Next;
               }
               if (ctx.iFramesProcessed > 0)
                   goto Next;
               iStreamsProcessed++;
           }
           if (0 == ctx.pDecoder)
               goto Next;

           if (0 == (pFrame = ffmpeg::av_frame_alloc())) {
               hr = E_OUTOFMEMORY;
               goto Next;
           }

           LOGTRACE(TSDecoder, "ProcessTS(%d, 0x%.8x, %d, 0x%.8x, 0x%.8x), this=0x%.8x, decode, S:%d, T:%d\r\n", (int)op, pTS, uiBytes, cb, pCbCtx, this, pkt.stream_index, ctx.pStream->codec->codec_type);
           int         bGotFrame   = false;
           int         iBytesUsed  =   0;
           MEDIA_TYPE  mt;
           memset(&mt, 0, sizeof(mt));
           mt.eType = ctx.pStream->codec->codec_type;
           switch (mt.eType) {
           case ffmpeg::AVMediaType::AVMEDIA_TYPE_AUDIO:
               ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
               if((iRet = ffmpeg::avcodec_decode_audio4(ctx.pStream->codec, pFrame, &bGotFrame, &pkt)) < 0) {
                   hr = E_FAIL;
                   goto Next;
               }
               _ASSERT(pkt.size == iRet);
               // FFMPEG AAC decoder oddity, first call to 'avcodec_decode_audio4' results mute audio where the second result the expected audio
               bGotFrame = false;
               if ((iRet = ffmpeg::avcodec_decode_audio4(ctx.pStream->codec, pFrame, &bGotFrame, &pkt)) < 0) {
                   hr = E_FAIL;
                   goto Next;
               }
               _ASSERT(pkt.size == iRet);
               ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
               if (false == bGotFrame)
                   goto Next;

               iBytesUsed                      = ctx.pStream->codec->frame_size;
               mt.format.audio.nChannels       = ctx.pStream->codec->channels;
               mt.format.audio.nSamplesPerSec  = ctx.pStream->codec->sample_rate;
               mt.format.audio.wBitsPerSample  = ffmpeg::av_get_bytes_per_sample(ctx.pStream->codec->sample_fmt) * 8;
               mt.format.audio.nBlockAlign     = mt.format.audio.nChannels * mt.format.audio.wBitsPerSample / 8;
               mt.format.audio.sSampleFormat   = (short)pFrame->format;
               break;
           case ffmpeg::AVMediaType::AVMEDIA_TYPE_VIDEO:
               if ((iRet = ffmpeg::avcodec_decode_video2(ctx.pStream->codec, pFrame, &bGotFrame, &pkt)) < 0) {
                   hr = E_FAIL;
                   break;
               }
               if (false == bGotFrame)
                   goto Next;

               assert(ffmpeg::AVPixelFormat::AV_PIX_FMT_YUV420P == ctx.pStream->codec->pix_fmt);// Thats is the only color space currently supported
               iBytesUsed                      = (ctx.pStream->codec->width * ctx.pStream->codec->height * 3) / 2;
               mt.format.video.width           = ctx.pStream->codec->width;
               mt.format.video.height          = ctx.pStream->codec->height;
               mt.format.video.colorspace      = ctx.pStream->codec->pix_fmt;
               mt.format.video.fFPS            = (float)ctx.pStream->codec->framerate.num / ctx.pStream->codec->framerate.den;
               bVideoFound                     = true;
               break;
           default:
               goto Next;
           }

           ctx.iFramesProcessed++;

           {
               FRAME f = { ctx.pStream->index, ((0 == ptsLast) ? dtsLast : ptsLast), (uint8_t**)pFrame->data, (int32_t*)pFrame->linesize };
               if ((iRet > 0) && (false == cb(mt, f, pCbCtx)))
                   hr = S_FALSE;// Breaks the loop
           }
       Next:
           ffmpeg::av_free_packet(&pkt);
           if (0 != pFrame) {
               //ffmpeg::av_frame_unref(pFrame);
               ffmpeg::av_frame_free(&pFrame);
               pFrame = 0;
           }
       }

    ErrExit:
       for (unsigned int i = 0; i < pFmtCtx->nb_streams; i++)
           ffmpeg::avcodec_close(pFmtCtx->streams[i]->codec);

       pIoCtx->buffer = 0;// We have allocated the buffer, no need for ffmpeg to free it 4 us
       pFmtCtx->pb = 0;
       ffmpeg::av_free(pIoCtx);
       ffmpeg::avformat_close_input(&pFmtCtx);
       ffmpeg::avformat_free_context(pFmtCtx);
       return hr;
    }
  • recording from webcam using ffmpeg at high framerate

    14 novembre 2017, par Zorglub29

    I have a webcam (model Brio 4K stream edition from Logitech) that is able to record at resolution 1280x720 and 60 fps in guvcview on Ubuntu 16.04. I then use a video codec ’raw camera input’. This is working fine and as expected, and the result is well a 60 fps video at the desired resolution.

    However, I need to record using command line and not GUI. The guvcview GUI crashes on my machine (segmentation fault, this has been reported by other users before), so I want to use ffmpeg instead.

    Unfortunately, when I use the command (in terminal) :

    ffmpeg -i /dev/video1 -framerate 60 -video_size 1280x720 out.mkv

    I only get around 30 fps out. This is of course not due to the camera by itself (it works at 60 fps in guvcview), but I cannot understand why I get 30 fps when I ask for 60 fps explicitely. It also looks in the output of ffmpeg as it records at 30 fps :

    Metadata:
       encoder         : Lavf56.40.101
       Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv422p, 1280x720, q=-1--1, 30 fps, 1k tbn, 30 tbc

    Any suggestion how I can solve this and record at 60 fps using ffmpeg ?

    Note : I also tried something like this, with the same result (only 30 fps) :

    ffmpeg -f video4linux2 -i /dev/video1 -framerate 60.0 -video_size 1280x720 out.mkv

    Edit 1 thank you for the help in comment : order of arguments matters. Now using :

    ffmpeg -framerate 60 -video_size 1280x720 -i /dev/video1 out.mkv

    I get still around 30 fps, and a new (probably more understandable) warning message :

    [video4linux2,v4l2 @ 0x1ddc4e0] The driver changed the time per frame from 1/60 to 1/30
    Input #0, video4linux2,v4l2, from '/dev/video1':
     Duration: N/A, start: 256338.694616, bitrate: 442368 kb/s
       Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1280x720, 442368 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc

    I find several entries for this problem (video4linux2 + The driver changed the time per frame), but no clear solution.

    Edit 2 + 3 :

    v4l2-ctl -d 1 --list-formats-ext
    ioctl: VIDIOC_ENUM_FMT
       Index       : 0
       Type        : Video Capture
       Pixel Format: 'YUYV'
       Name        : YUYV 4:2:2
           Size: Discrete 640x480
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 160x120
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 176x144
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 320x180
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 320x240
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 352x288
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 340x340
               Interval: Discrete 0.033s (30.000 fps)
           Size: Discrete 424x240
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 440x440
               Interval: Discrete 0.033s (30.000 fps)
           Size: Discrete 480x270
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 640x360
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 800x448
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 800x600
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 848x480
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 960x540
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 1024x576
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 1280x720
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 1600x896
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 1920x1080
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)

       Index       : 1
       Type        : Video Capture
       Pixel Format: 'MJPG' (compressed)
       Name        : Motion-JPEG
           Size: Discrete 640x480
               Interval: Discrete 0.008s (120.000 fps)
               Interval: Discrete 0.011s (90.000 fps)
               Interval: Discrete 0.017s (60.000 fps)
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 160x120
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 176x144
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 320x180
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 320x240
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 352x288
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 424x240
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 480x270
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 640x360
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 800x448
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 800x600
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 848x480
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 960x540
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 1024x576
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 1280x720
               Interval: Discrete 0.011s (90.000 fps)
               Interval: Discrete 0.017s (60.000 fps)
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 1600x896
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 1920x1080
               Interval: Discrete 0.017s (60.000 fps)
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 2560x1440
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 3840x2160
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 4096x2160
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)

       Index       : 2
       Type        : Video Capture
       Pixel Format: 'NV12'
       Name        : Y/CbCr 4:2:0
           Size: Discrete 640x480
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 640x360
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 1280x720
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)
           Size: Discrete 1920x1080
               Interval: Discrete 0.033s (30.000 fps)
               Interval: Discrete 0.042s (24.000 fps)
               Interval: Discrete 0.050s (20.000 fps)
               Interval: Discrete 0.067s (15.000 fps)
               Interval: Discrete 0.100s (10.000 fps)
               Interval: Discrete 0.133s (7.500 fps)
               Interval: Discrete 0.200s (5.000 fps)

    Edit 4 :

    It looks like there may still be a problem using :

    ffmpeg -f v4l2 -framerate 60 -video_size 1280x720 -input_format mjpeg -i /dev/video1 out.mkv

    As the output of ffmpeg looks like :

    Output #0, matroska, to 'out.mkv':
     Metadata:
     encoder         : Lavf56.40.101
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuvj422p(pc), 1280x720, q=-1--1, 60 fps, 1k tbn, 60 tbc
     Metadata:
     encoder         : Lavc56.60.100 libx264
    Stream mapping:
    Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    frame=  198 fps= 37 q=-1.0 Lsize=    1043kB time=00:00:05.38 bitrate=1587.4kbits/s

    Is the fps indicated in the last line (37 instead of 60) reliable ? It was working at 60 fps with guvcview, so I do not think the laptop write speeed or CPU is the problem.

    Edit 5 :

    Thank you for the great help @LordNeckbeard , now it looks like everything works using your additional output argument command ffmpeg -f v4l2 -framerate 60 -video_size 1280x720 -input_format mjpeg -i /dev/video1 -preset faster -pix_fmt yuv420p out.mkv :

    $ ffmpeg -f v4l2 -framerate 60 -video_size 1280x720 -input_format mjpeg -i /dev/video1 -preset faster -pix_fmt yuv420p out.mkv
    ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
     built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
     configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
     libavutil      54. 31.100 / 54. 31.100
     libavcodec     56. 60.100 / 56. 60.100
     libavformat    56. 40.101 / 56. 40.101
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 40.101 /  5. 40.101
     libavresample   2.  1.  0 /  2.  1.  0
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.101 /  1.  2.101
     libpostproc    53.  3.100 / 53.  3.100
    [mjpeg @ 0x1d6f320] Changeing bps to 8
    Input #0, video4linux2,v4l2, from '/dev/video1':
     Duration: N/A, start: 259410.922692, bitrate: N/A
       Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 1280x720, -10 kb/s, 60 fps, 60 tbr, 1000k tbn, 1000k tbc
    [swscaler @ 0x1d7e480] deprecated pixel format used, make sure you did set range correctly
    [libx264 @ 0x1d72620] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
    [libx264 @ 0x1d72620] profile High, level 3.2
    [libx264 @ 0x1d72620] 264 - core 148 r2643 5c65704 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=4 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=20 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, matroska, to 'out.mkv':
     Metadata:
       encoder         : Lavf56.40.101
       Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv420p, 1280x720, q=-1--1, 60 fps, 1k tbn, 60 tbc
       Metadata:
         encoder         : Lavc56.60.100 libx264
    Stream mapping:
     Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    frame=  467 fps= 59 q=-1.0 Lsize=     914kB time=00:00:07.83 bitrate= 955.8kbits/s    
    video:910kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.434447%
    [libx264 @ 0x1d72620] frame I:2     Avg QP:21.96  size: 61186
    [libx264 @ 0x1d72620] frame P:118   Avg QP:26.01  size:  4695
    [libx264 @ 0x1d72620] frame B:347   Avg QP:27.54  size:   734
    [libx264 @ 0x1d72620] consecutive B-frames:  0.4%  1.3%  0.6% 97.6%
    [libx264 @ 0x1d72620] mb I  I16..4: 14.7% 45.2% 40.0%
    [libx264 @ 0x1d72620] mb P  I16..4:  1.4%  3.7%  0.0%  P16..4: 29.9%  4.1%  0.5%  0.0%  0.0%    skip:60.4%
    [libx264 @ 0x1d72620] mb B  I16..4:  0.2%  0.4%  0.0%  B16..8:  5.4%  0.2%  0.0%  direct: 4.3%  skip:89.6%  L0:53.4% L1:42.7% BI: 3.9%
    [libx264 @ 0x1d72620] 8x8 transform intra:66.4% inter:71.8%
    [libx264 @ 0x1d72620] coded y,uvDC,uvAC intra: 38.1% 50.7% 12.7% inter: 2.8% 7.6% 0.1%
    [libx264 @ 0x1d72620] i16 v,h,dc,p: 36% 36% 16% 11%
    [libx264 @ 0x1d72620] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 32% 37%  2%  2%  2%  4%  1%  5%
    [libx264 @ 0x1d72620] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 46%  8%  2%  3%  3%  4%  3% 12%
    [libx264 @ 0x1d72620] i8c dc,h,v,p: 56% 26% 16%  3%
    [libx264 @ 0x1d72620] Weighted P-Frames: Y:9.3% UV:7.6%
    [libx264 @ 0x1d72620] ref P L0: 58.6% 41.4%
    [libx264 @ 0x1d72620] ref B L0: 56.9% 43.1%
    [libx264 @ 0x1d72620] ref B L1: 85.5% 14.5%
    [libx264 @ 0x1d72620] kb/s:946.85