diff --git a/vpxenc.c b/vpxenc.c
index 28d43f28b2c41d3a1539d37f3d03f2e299187873..4d9629408d0ba25f8084151cf91378a2d38d26f5 100644
--- a/vpxenc.c
+++ b/vpxenc.c
@@ -1264,6 +1264,10 @@ static void encode_frame(struct stream_state *stream,
 
   /* Scale if necessary */
   if (img && (img->d_w != cfg->g_w || img->d_h != cfg->g_h)) {
+    if (img->fmt != VPX_IMG_FMT_I420 && img->fmt != VPX_IMG_FMT_YV12) {
+      fprintf(stderr, "%s can only scale 4:2:0 8bpp inputs\n", exec_name);
+      exit(EXIT_FAILURE);
+    }
     if (!stream->img)
       stream->img = vpx_img_alloc(NULL, VPX_IMG_FMT_I420,
                                   cfg->g_w, cfg->g_h, 16);