Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#6059 closed defect (invalid)

Convertion from MOV to VP9 produces all frames black

Reported by: Andriy.Astakhov Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: vp9
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Convertion from MOV to VP9 produces all frames black.
VP8 as target works fine.
The only workaround I've found is to convert to yuv4 first and after this convert to VP9. Please note that other encoders I've tried as proxy (huffyuv, libx264, v210) fail to produce good VP9 file (also all frames black), only yuv4 works.
Sample MOV file - https://www.dropbox.com/s/7vh2gnvdsgmxyhx/VP9_black_tint.mov?dl=0
Result VP9 file - https://www.dropbox.com/s/c6jy0pm5k9qjkqy/VP9_black_tint.webm?dl=0
How to reproduce:

ffmpeg -y -i VP9_black_tint.mov -c:v libvpx-vp9 -b:v 1M VP9_black_tint.webm
ffmpeg version N-82966-g6993bb4 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-dxva2 --enable-libmfx -
-enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei
0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-li
bbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --en
able-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-li
bopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --e
nable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc
--enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable
-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --e
nable-lzma --enable-decklink --enable-zlib
  libavutil      55. 43.100 / 55. 43.100
  libavcodec     57. 70.100 / 57. 70.100
  libavformat    57. 61.100 / 57. 61.100
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 68.100 /  6. 68.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'VP9_black_tint.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    creation_time   : 2016-08-15T08:00:06.000000Z
  Duration: 00:00:01.00, start: 0.000000, bitrate: 141764 kb/s
    Stream #0:0(eng): Video: qtrle (rle  / 0x20656C72), rgb24, 470x446, 141712 k
b/s, SAR 1:1 DAR 235:223, 30 fps, 30 tbr, 30 tbn, 30 tbc (default)
    Metadata:
      creation_time   : 2016-08-15T08:00:06.000000Z
      handler_name    : +сЁрсюЄўшъ яёхтфюэшьют Apple
      encoder         : T¬+М+Л+ПтАбTЖ+ЛTЗ
      timecode        : 00:00:00:00
    Stream #0:1(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
    Metadata:
      creation_time   : 2016-08-15T08:00:07.000000Z
      handler_name    : +сЁрсюЄўшъ яёхтфюэшьют Apple
      timecode        : 00:00:00:00
[libvpx-vp9 @ 000000000031cce0] v1.6.0
Output #0, webm, to 'VP9_black_tint.webm':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    encoder         : Lavf57.61.100
    Stream #0:0(eng): Video: vp9 (libvpx-vp9), gbrp, 470x446 [SAR 1:1 DAR 235:22
3], q=-1--1, 1000 kb/s, 30 fps, 1k tbn, 30 tbc (default)
    Metadata:
      creation_time   : 2016-08-15T08:00:06.000000Z
      handler_name    : +сЁрсюЄўшъ яёхтфюэшьют Apple
      timecode        : 00:00:00:00
      encoder         : Lavc57.70.100 libvpx-vp9
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream mapping:
  Stream #0:0 -> #0:0 (qtrle (native) -> vp9 (libvpx-vp9))
Press [q] to stop, [?] for help
frame=   26 fps=0.0 q=0.0 size=       0kB time=00:00:00.03 bitrate= 102.1kbits/s
frame=   30 fps= 24 q=0.0 size=       0kB time=00:00:00.16 bitrate=  20.7kbits/s
frame=   30 fps=4.7 q=0.0 Lsize=     189kB time=00:00:00.96 bitrate=1596.9kbits/
s speed=0.15x
video:188kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing o
verhead: 0.351604%

This works fine (to VP8):

ffmpeg -y -i VP9_black_tint.mov -c:v libvpx -b:v 1M VP8_OK.webm

This also works fine (to VP9 with yuv4 as proxy):

ffmpeg -y -i VP9_black_tint.mov -c:v yuv4 proxy.avi
ffmpeg -y -i proxy.avi -c:v libvpx-vp9 -b:v 1M VP9_good.webm

Change History (6)

comment:1 Changed 3 years ago by Andriy.Astakhov

  • Version changed from unspecified to git-master

comment:2 Changed 3 years ago by Cigaes

The VP9_black_tint.webm file plays fine in Firefox on the dropbox site or in MPlayer; dropbox also has a preview that seems correct.

How do you observe these black frames?

comment:3 Changed 3 years ago by Andriy.Astakhov

  • Resolution set to invalid
  • Status changed from new to closed

comment:4 Changed 3 years ago by cehoyos

Workaround for broken or outdated media player is to use -pix_fmt yuv420p.

comment:5 Changed 3 years ago by Andriy.Astakhov

Thanks, cehoyos.
This was an issue - outdated software. And your hint definitely helps.

Sorry for false alarm.

comment:6 Changed 3 years ago by cehoyos

  • Keywords vp9 added; MOV VP9 WebM removed
  • Priority changed from important to normal
Note: See TracTickets for help on using tickets.