2012-02-16 32 views
6

Sto provando a convertire un file .mov che è Quicktime con Alpha Channel in un film .mp4. Sto usando FFMPEG e posso convertire correttamente il video in un video .mp4, ma perdo il canale alfa.Converti .mov in .mp4 e mantieni il canale alfa usando FFMPEG

Ecco il comando sto facendo funzionare:
ffmpeg -i BLUE_LOWER_THIRD.mov -vcodec libx264 -vpre medium blue_lower_third.mp4

Sto facendo funzionare questo su Ubuntu 11.10. Ecco le informazioni sulla mia installazione di 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 

È possibile avere un canale alfa in un file mp4? Se sì, come lo fai con FFMPEG?

Modifica: Questo è l'output dall'esecuzione del comando.

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 
+0

È possibile fornire informazioni sul flusso video di input e di risultati? –

+0

@ mark-s sei riuscito a riuscirci? se si, per favore rispondi alla tua domanda e accettala. –

risposta

0

questo:

formato pixel Incompatibile 'BGR un' per il codec 'libx264', formato auto-selezione 'YUV420P'

è dove sta perdendo del alfa. Prova a specificare un diverso formato di pixel che include le informazioni alfa, anche se ovviamente non sono tutte supportate dalla libreria x264.

+0

h.264 non supporta un canale alfa. È possibile utilizzare ffmpeg per codificare il codec Quicktime Animation, che supporta il formato alfa di un canale alfa. Potresti anche provare un formato più recente come WebM che supporta un canale alfa. – MoDJ

Problemi correlati