Hi,

I'm trying to decode a vp8 encoded video with alpha channel. I clone ffmpeg 
from git and configured with the following options:


./configure --prefix="${HOME}/ffmpeg_build_git" --pkg-config-flags=--static 
--extra-cflags=-I"${HOME}/ffmpeg_build_git/include" 
--extra-ldflags=-L"${HOME}/ffmpeg_build_git/lib" 
--bindir="${HOME}/ffmpeg_build_git/bin" --enable-gpl --enable-yasm 
--enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame 
--enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx 
--enable-nonfree --disable-doc --enable-vaapi --enable-vda --enable-vdpau 
--enable-decoder=h264_vdpau --enable-hardcoded-tables 
--enable-hwaccel=h264_vaapi --enable-hwaccel=h264_vdpau --enable-libx264


After that I run the command:


./ffmpeg -i ~/Desktop/png/filmato_01_alfa.png -c:v libvpx -pix_fmt yuva420p 
-metadata:s:v:0 alpha_mode="1" output.webm


to encode a vp8 video, I obtain the following output:


ffmpeg version N-81641-ga50ca6b Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Debian 4.9.2-10)
  configuration: --prefix=/home/qmax/ffmpeg_build_git 
--pkg-config-flags=--static 
--extra-cflags=-I/home/qmax/ffmpeg_build_git/include 
--extra-ldflags=-L/home/qmax/ffmpeg_build_git/lib 
--bindir=/home/qmax/ffmpeg_build_git/bin --enable-gpl --enable-yasm 
--enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame 
--enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx 
--enable-nonfree --disable-doc --enable-vaapi --enable-vda --enable-vdpau 
--enable-decoder=h264_vdpau --enable-hardcoded-tables 
--enable-hwaccel=h264_vaapi --enable-hwaccel=h264_vdpau --enable-libx264
  libavutil      55. 29.100 / 55. 29.100
  libavcodec     57. 55.101 / 57. 55.101
  libavformat    57. 48.103 / 57. 48.103
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 62.100 /  6. 62.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, png_pipe, from '/home/qmax/Desktop/png/filmato_01_alfa.png':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: png, rgba(pc), 1280x720 [SAR 1:1 DAR 16:9], 25 tbr, 25 
tbn, 25 tbc
[libvpx @ 0x2d2ace0] v1.3.0
[webm @ 0x2d29080] Using AVStream.codec to pass codec parameters to muxers is 
deprecated, use AVStream.codecpar instead.
Output #0, webm, to 'output.webm':
  Metadata:
    encoder         : Lavf57.48.103
    Stream #0:0: Video: vp8 (libvpx), yuva420p, 1280x720 [SAR 1:1 DAR 16:9], 
q=-1--1, 200 kb/s, 25 fps, 1k tbn, 25 tbc
    Metadata:
      alpha_mode      : 1
      encoder         : Lavc57.55.101 libvpx
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream mapping:
  Stream #0:0 -> #0:0 (png (native) -> vp8 (libvpx))
Press [q] to stop, [?] for help
frame=    1 fps=0.0 q=0.0 Lsize=      69kB time=00:00:00.00 
bitrate=562384.0kbits/s speed=0.00144x
video:34kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing 
overhead: 101.311569%

I would use ffmpeg to decode this video when i run:

~/ffmpeg_build_git/bin/ffmpeg -i ./output.webm  -f null - -benchmark

ffmpeg version N-81641-ga50ca6b Copyright (c) 2000-2016 the FFmpeg developers

  built with gcc 4.9.2 (Debian 4.9.2-10)
  configuration: --prefix=/home/qmax/ffmpeg_build_git 
--pkg-config-flags=--static 
--extra-cflags=-I/home/qmax/ffmpeg_build_git/include 
--extra-ldflags=-L/home/qmax/ffmpeg_build_git/lib 
--bindir=/home/qmax/ffmpeg_build_git/bin --enable-gpl --enable-yasm 
--enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame 
--enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx 
--enable-nonfree --disable-doc --enable-vaapi --enable-vda --enable-vdpau 
--enable-decoder=h264_vdpau --enable-hardcoded-tables 
--enable-hwaccel=h264_vaapi --enable-hwaccel=h264_vdpau --enable-libx264
  libavutil      55. 29.100 / 55. 29.100
  libavcodec     57. 55.101 / 57. 55.101
  libavformat    57. 48.103 / 57. 48.103
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 62.100 /  6. 62.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, matroska,webm, from './output.webm':
  Metadata:
    encoder         : Lavf57.48.103
  Duration: 00:00:00.04, start: 0.000000, bitrate: 14059 kb/s
    Stream #0:0: Video: vp8, yuv420p, 1280x720, SAR 1:1 DAR 16:9, 25 fps, 25 
tbr, 1k tbn, 1k tbc (default)
    Metadata:
      alpha_mode      : 1
[null @ 0x27019e0] Using AVStream.codec to pass codec parameters to muxers is 
deprecated, use AVStream.codecpar instead.
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf57.48.103
    Stream #0:0: Video: wrapped_avframe, yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 
q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
    Metadata:
      alpha_mode      : 1
      encoder         : Lavc57.55.101 wrapped_avframe
Stream mapping:
  Stream #0:0 -> #0:0 (vp8 (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
frame=    1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A speed= 5.8x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing 
overhead: unknown
bench: utime=0.004s
bench: maxrss=18300kB

The input stream has yuv420p pixel format rather than yuva420p.

By analyzing the source code in libavcodec/libvpxdec.c in the function 
vpx_decode there is a reference to the alpha channel that is set in:
planes[3] =
ctx->has_alpha_channel ? img_alpha->planes[VPX_PLANE_Y] : NULL;
 linesizes[3] =
            ctx->has_alpha_channel ? img_alpha->stride[VPX_PLANE_Y] : 0;

________________________________

Le informazioni contenute in questo messaggio e negli eventuali allegati sono 
confidenziali e ad uso esclusivo del destinatario indicato. Qualora non fossero 
a Lei destinati o abbia ricevuto questa comunicazione per errore, La preghiamo 
di tener presente che qualsiasi divulgazione, distribuzione o duplicazione 
delle informazioni in essa contenute è strettamente proibita e può essere 
illegale. La informiamo che deve darci tempestiva comunicazione della ricezione 
del messaggio e distruggerlo immediatamente. I contenuti possono essere 
soggetti ad accordi di non- divulgazione e riservatezza. Le opinioni e i punti 
di vista espressi in questo messaggio di posta elettronica sono propri 
dell'autore e potrebbero non corrispondere a opinioni e punti di vista di 
Quixant. Nessuna informazione contenuta in questo messaggio può essere 
interpretata come modifica dei termini di qualsiasi accordo contrattuale 
scritto, esistente tra Quixant Plc (comprese le sue controllate) e qualsiasi 
persona fisica o giuridica.
_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to