[FFmpeg-trac] #8468(ffmpeg:new): VP9 will not encode in yuva420p
FFmpeg
trac at avcodec.org
Mon Jan 13 19:59:30 EET 2020
#8468: VP9 will not encode in yuva420p
--------------------------------+----------------------------------
Reporter: doard | Type: defect
Status: new | Priority: normal
Component: ffmpeg | Version: 4.2
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
--------------------------------+----------------------------------
I need to convert prores yuva videos to VP9 webm and preserve the alpha
channel. The encoder (libvpx-vp9) says it supports yuva420p but the output
video is yuv420p.
Show that my build supports yuva420p encoding
{{{
% ffmpeg.exe -help encoder=libvpx-vp9
ffmpeg version n4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.2.0 (Rev2, Built by MSYS2 project)
configuration: --arch=x86_64 --target-os=mingw32 --enable-runtime-
cpudetect --enable-pthreads --enable-nonfree --disable-w32threads
--disable-debug --disable-gpl --enable-version3 --disable-doc --enable-
libopenh264 --enable-libvpx --enable-libmp3lame --enable-openssl --enable-
iconv --enable-libxml2 --enable-libvorbis --enable-libaom --enable-libass
--enable-gmp --enable-ffnvcodec --enable-libmfx --enable-nvdec --enable-
cuvid --enable-dxva2 --enable-libsrt --enable-d3d11va --enable-shared
--enable-static --enable-decklink --extra-cflags='-O3 -w -ftree-vectorize
-DLIBXML_STATIC -DWINVER=0x0A00 -D_WIN32_WINNT=0x0A00
-I../Blackmagic_DeckLink_SDK_10.11.4/Win/include' --extra-ldflags
='-static-libgcc -static-libstdc++
-L../Blackmagic_DeckLink_SDK_10.11.4/Win/include'
--prefix=../../../Build/ffmpeg_4.2.2/x64
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
Encoder libvpx-vp9 [libvpx VP9]:
General capabilities: delay threads
Threading capabilities: auto
Supported pixel formats: yuv420p yuva420p yuv422p yuv440p yuv444p
yuv420p10le yuv422p10le yuv440p10le yuv444p10le yuv420p12le yuv422p12le
yuv440p12le yuv444p12le gbrp gbrp10le gbrp12le
}}}
Command to encode
{{{
% ffmpeg -i "D:\Videos\str_0010_introTransition_prores4444_v001.mov" -y
-an -vcodec libvpx-vp9 -b:v 0 -tile-columns 6 -crf 18 -pix_fmt yuva420p
"D:\Videos\str_0010_introTransition_test.webm"
}}}
Output from ffmpeg: Note that it says it's encoding with pixel format
yuva420p
{{{
[libvpx-vp9 @ 000001be1f1f2900] v1.8.1-133-g802569640
Output #0, webm, to 'D:\Videos\str_0010_introTransition_test.webm':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
uk.co.thefoundry.Application: Nuke
uk.co.thefoundry.ApplicationVersion: 9.0v7
uk.co.thefoundry.YCbCrMatrix: Rec 709
uk.co.thefoundry.Colorspace: sRGB
uk.co.thefoundry.Writer: mov64
encoder : Lavf58.29.100
Stream #0:0(eng): Video: vp9 (libvpx-vp9), yuva420p, 12544x1792 [SAR
1:1 DAR 7:1], q=-1--1, 24 fps, 1k tbn, 24 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc58.54.100 libvpx-vp9
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame= 44 fps=1.4 q=0.0 size= 1kB time=00:00:00.79 bitrate=
10.0kbits/s speed=0.0249x
}}}
Verify pixel format encoded in output video
{{{
% ffmpeg -i "D:\Videos\str_0010_introTransition_test.webm"
}}}
Output: Note that pixel format is now yuv420p, no alpha
{{{
ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.1.1 (GCC) 20190807
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
--enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
--enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
--enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
--enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
--enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-
nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0, matroska,webm, from
'D:\Videos\str_0010_introTransition_test.webm':
Metadata:
UK.CO.THEFOUNDRY.WRITER: mov64
MAJOR_BRAND : qt
MINOR_VERSION : 512
COMPATIBLE_BRANDS: qt
UK.CO.THEFOUNDRY.APPLICATION: Nuke
UK.CO.THEFOUNDRY.APPLICATIONVERSION: 9.0v7
UK.CO.THEFOUNDRY.YCBCRMATRIX: Rec 709
UK.CO.THEFOUNDRY.COLORSPACE: sRGB
ENCODER : Lavf58.29.100
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv), 12544x1792, SAR
1:1 DAR 7:1, 24 fps, 24 tbr, 1k tbn, 1k tbc (default)
Metadata:
alpha_mode : 1
HANDLER_NAME : VideoHandler
ENCODER : Lavc58.54.100 libvpx-vp9
At least one output file must be specified
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/8468>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list