I am trying to convert a .mov file that is Quicktime with Alpha Channel to a .mp4 movie. I am using FFMPEG and I can successfully convert the video to a .mp4 video, but I loose the alpha channel.
Here is the command I am running:ffmpeg -i BLUE_LOWER_THIRD.mov -vcodec libx264 -vpre medium blue_lower_third.mp4
I am running this on Ubuntu 11.10. Here is the information about my install of ffmpeg.
ffmpeg version 0.7.3-4:0.7.3-0ubuntu0.11.10.1, Copyright (c) 2000-2011 the Libav developers
built on Jan 4 2012 16:08:51 with gcc 4.6.1
configuration: --extra-version='4:0.7.3-0ubuntu0.11.10.1' --arch=amd64 --prefix=/usr --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
avutil configuration: --extra-version='4:0.7.3ubuntu0.11.10.1' --arch=amd64 --prefix=/usr --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-vaapi --enable-libopenjpeg --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdirac --enable-libmp3lame --enable-librtmp --enable-libx264 --enable-libxvid --enable-libvo-aacenc --enable-version3 --enable-libvo-amrwbenc --enable-version3 --enable-libdc1394 --enable-shared --disable-static
avcodec configuration: --extra-version='4:0.7.3ubuntu0.11.10.1' --arch=amd64 --prefix=/usr --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-vaapi --enable-libopenjpeg --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdirac --enable-libmp3lame --enable-librtmp --enable-libx264 --enable-libxvid --enable-libvo-aacenc --enable-version3 --enable-libvo-amrwbenc --enable-version3 --enable-libdc1394 --enable-shared --disable-static
avformat configuration: --extra-version='4:0.7.3ubuntu0.11.10.1' --arch=amd64 --prefix=/usr --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --enable-runtime-cpudetect --enable-vaapi --enable-libopenjpeg --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdirac --enable-libmp3lame --enable-librtmp --enable-libx264 --enable-libxvid --enable-libvo-aacenc --enable-version3 --enable-libvo-amrwbenc --enable-version3 --enable-libdc1394 --enable-shared --disable-static
libavutil 51. 7. 0 / 51. 7. 0
libavcodec 53. 6. 0 / 53. 6. 0
libavformat 53. 3. 0 / 53. 3. 0
libavdevice 53. 0. 0 / 53. 0. 0
libavfilter 2. 4. 0 / 2. 4. 0
libswscale 2. 0. 0 / 2. 0. 0
libpostproc 52. 0. 0 / 52. 0. 0
Is it possible to have alpha channel in an mp4 file? If so, how do you do it with FFMPEG?
Edit: This is the output from running the command.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'BLUE_LOWER_THIRD.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2010-12-21 10:36:51
Duration: 00:00:15.00, start: 0.000000, bitrate: 8050 kb/s
Stream #0.0(eng): Video: png, bgra, 1920x1080, 8043 kb/s, PAR 1920:1920 DAR 16:9, 30 fps, 30 tbr, 30 tbn, 30 tbc
Metadata:
creation_time : 2010-12-21 10:36:51
Stream #0.1(eng): Data: tmcd / 0x64636D74, 0 kb/s
Metadata:
creation_time : 2010-12-21 10:39:48
File 'blue_lower_third.mp4' already exists. Overwrite ? [y/N] y
Incompatible pixel format 'bgra' for codec 'libx264', auto-selecting format 'yuv420p'
[buffer @ 0x7e3d80] w:1920 h:1080 pixfmt:bgra
[ffsink @ 0x7edda0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x7fc480] w:1920 h:1080 fmt:bgra -> w:1920 h:1080 fmt:yuv420p flags:0x4
[libx264 @ 0x7fcf20] using SAR=1/1
[libx264 @ 0x7fcf20] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle Cache64
[libx264 @ 0x7fcf20] profile High, level 4.0
[libx264 @ 0x7fcf20] 264 - core 116 r2042 178455c - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=200 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.41 aq=1:1.00
Output #0, mp4, to 'blue_lower_third.mp4':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2010-12-21 10:36:51
encoder : Lavf53.3.0
Stream #0.0(eng): Video: libx264, yuv420p, 1920x1080 [PAR 1920:1920 DAR 16:9], q=0-69, 200 kb/s, 30 tbn, 30 tbc
Metadata:
creation_time : 2010-12-21 10:36:51
Stream mapping:
Stream #0.0 -> #0.0
Press ctrl-c to stop encoding
frame= 450 fps= 11 q=9.0 Lsize= 83kB time=14.93 bitrate= 45.7kbits/s its/s
video:75kB audio:0kB global headers:0kB muxing overhead 10.287784%
frame I:2 Avg QP:18.30 size: 2584
[libx264 @ 0x7fcf20] frame P:118 Avg QP:16.22 size: 310
[libx264 @ 0x7fcf20] frame B:330 Avg QP:16.75 size: 106
[libx264 @ 0x7fcf20] consecutive B-frames: 1.8% 0.9% 1.3% 96.0%
[libx264 @ 0x7fcf20] mb I I16..4: 49.7% 50.0% 0.3%
[libx264 @ 0x7fcf20] mb P I16..4: 0.5% 0.0% 0.0% P16..4: 0.3% 0.0% 0.0% 0.0% 0.0% skip:99.0%
[libx264 @ 0x7fcf20] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.3% 0.0% 0.0% direct: 0.0% skip:99.6% L0:37.2% L1:62.6% BI: 0.2%
[libx264 @ 0x7fcf20] final ratefactor: 9.32
[libx264 @ 0x7fcf20] 8x8 transform intra:38.0% inter:56.1%
[libx264 @ 0x7fcf20] coded y,uvDC,uvAC intra: 0.9% 4.2% 2.9% inter: 0.0% 0.1% 0.0%
[libx264 @ 0x7fcf20] i16 v,h,dc,p: 64% 32% 1% 3%
[libx264 @ 0x7fcf20] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 0% 2% 97% 0% 1% 0% 0% 0% 0%
[libx264 @ 0x7fcf20] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 5% 60% 23% 2% 6% 1% 1% 1% 2%
[libx264 @ 0x7fcf20] i8c dc,h,v,p: 86% 13% 1% 0%
[libx264 @ 0x7fcf20] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7fcf20] ref P L0: 79.4% 2.1% 13.2% 5.2%
[libx264 @ 0x7fcf20] ref B L0: 61.1% 37.7% 1.2%
[libx264 @ 0x7fcf20] ref B L1: 92.3% 7.7%
[libx264 @ 0x7fcf20] kb/s:40.85
This:
Incompatible pixel format 'bgra' for codec 'libx264', auto-selecting format 'yuv420p'
is where your alpha's being lost. Try specifying a different pixel format that includes alpha information, though obviously they're not all supported by the x264 library.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With