title: ffmpeg generate thumbnails on GPU
body: <p>I try to generate thumbnails with acceleration on GPU, so compile ffmpeg 3.4.1 and run command:</p>
  
  <pre><code>./ffmpeg  -i ~/Videos/1080.mp4 -vf "hwupload_cuda,thumbnail_cuda=100,scale_cuda=107:60,hwdownload,format=yuv420p" -vframes 1 -y ~/Videos/thumbs/thumb%03d.jpg
  </code></pre>
  
  <p>But I get wrong output picture (the color of thumbnail is green):</p>
  
  <p><a href="https://i.stack.imgur.com/R4Twm.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/R4Twm.jpg" alt="enter image description here"></a></p>
  
  <p>Correct image must be black.
  How to make first image with correct color?</p>
  
  <p><a href="https://i.stack.imgur.com/7i4qF.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/7i4qF.jpg" alt="enter image description here"></a></p>
  
  <p>log: -loglevel verbose</p>
  
  <pre><code>ffmpeg version N-89707-g89b84cb Copyright (c) 2000-2018 the FFmpeg developers
    built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
    configuration: --cpu=native --enable-pthreads --extra-version=hd --enable-gnutls --enable-vaapi --enable-vdpau --enable-nonfree --enable-gpl --enable-swscale --enable-libx264 --enable-version3 --enable-nvenc --enable-libnpp --enable-cuda --enable-cuvid --enable-cuda-sdk --enable-filter=scale_cuda --enable-filter=thumbnail_cuda --extra-cflags=-I/usr/local/cuda-8.0/include --extra-ldflags=-L/usr/local/cuda-8.0/lib64
    libavutil      56.  7.100 / 56.  7.100
    libavcodec     58.  9.100 / 58.  9.100
    libavformat    58.  3.100 / 58.  3.100
    libavdevice    58.  0.100 / 58.  0.100
    libavfilter     7. 11.100 /  7. 11.100
    libswscale      5.  0.101 /  5.  0.101
    libswresample   3.  0.101 /  3.  0.101
    libpostproc    55.  0.100 / 55.  0.100
  [h264 @ 0x392ed40] Reinit context to 1920x1088, pix_fmt: yuv420p
  Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/alex/Videos/1080.mp4':
    Metadata:
      major_brand     : mp42
      minor_version   : 0
      compatible_brands: isommp42
      creation_time   : 2012-05-30T20:01:34.000000Z
    Duration: 00:01:14.21, start: 0.000000, bitrate: 5476 kb/s
      Stream #0:0(und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(left), 1920x1080 (1920x1088), 5321 kb/s, 29.97 fps, 29.97 tbr, 60k tbn, 59.94 tbc (default)
      Metadata:
        creation_time   : 1970-01-01T00:00:00.000000Z
        handler_name    : VideoHandler
      Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 152 kb/s (default)
      Metadata:
        creation_time   : 2012-05-30T20:01:34.000000Z
        handler_name    : IsoMedia File Produced by Google, 5-11-2011
  Stream mapping:
    Stream #0:0 -&gt; #0:0 (h264 (native) -&gt; mjpeg (native))
  Press [q] to stop, [?] for help
  [h264 @ 0x3a38280] Reinit context to 1920x1088, pix_fmt: yuv420p
  [Parsed_thumbnail_cuda_1 @ 0x4e3d8c0] batch size: 100 frames
  [graph 0 input from stream 0:0 @ 0x4e8b640] w:1920 h:1080 pixfmt:yuv420p tb:1/60000 fr:30000/1001 sar:0/1 sws_param:flags=2
  [auto_scaler_0 @ 0x4e8ca00] w:iw h:ih flags:'bicubic' interl:0
  [format @ 0x4e8b540] auto-inserting filter 'auto_scaler_0' between the filter 'Parsed_format_4' and the filter 'format'
  [Parsed_scale_cuda_2 @ 0x4e89380] w:1920 h:1080 -&gt; w:107 h:60
  [swscaler @ 0x4ebf0c0] deprecated pixel format used, make sure you did set range correctly
  [auto_scaler_0 @ 0x4e8ca00] w:107 h:60 fmt:yuv420p sar:0/1 -&gt; w:107 h:60 fmt:yuvj420p sar:0/1 flags:0x4
  Output #0, image2, to '/home/alex/Videos/thumbs/thumb%03d.jpg':
    Metadata:
      major_brand     : mp42
      minor_version   : 0
      compatible_brands: isommp42
      encoder         : Lavf58.3.100
      Stream #0:0(und): Video: mjpeg, 1 reference frame, yuvj420p(pc, left), 107x60, q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
      Metadata:
        creation_time   : 1970-01-01T00:00:00.000000Z
        handler_name    : VideoHandler
        encoder         : Lavc58.9.100 mjpeg
      Side data:
        cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
  [Parsed_thumbnail_cuda_1 @ 0x4e3d8c0] frame id #76 (pts_time=2.535867) selected from a set of 100 images
  No more output streams to write to, finishing.
  frame=    1 fps=0.9 q=3.1 Lsize=N/A time=00:00:02.56 bitrate=N/A speed=2.26x    
  video:2kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
  Input file #0 (/home/alex/Videos/1080.mp4):
    Input stream #0:0 (video): 115 packets read (134655 bytes); 101 frames decoded; 
    Input stream #0:1 (audio): 1 packets read (9 bytes); 
    Total: 116 packets (134664 bytes) demuxed
  Output file #0 (/home/alex/Videos/thumbs/thumb%03d.jpg):
    Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (1864 bytes); 
    Total: 1 packets (1864 bytes) muxed
  </code></pre>
  
  <p><strong>UPDATE, working!</strong>
  Add format=nv12 before hwupload</p>
  
  <p><code>-vf "format=nv12,hwupload_cuda,thumbnail_cuda,scale_cuda=1280:72‌​0,hwdownload,format=‌​nv12"</code></p>