ffmpeg
atualmente não suporta canais alfa ProRes. (Esta é uma solicitação de melhoria aberta .) Se você puder usar o codec QuickTime Animation (RLE) ( qtrle
) para o filme de sobreposição, então isso deve funcionar.
Estou tentando converter um arquivo mov com as seguintes especificações:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2012-10-09 13:34:01
Duration: 00:00:51.60, start: 0.000000, bitrate: 217433 kb/s
Stream #0:0(eng): Video: prores (ap4h / 0x68347061), yuv444p10le, 1920x1080, 215844 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 25 tbn, 25 tbc
Metadata:
creation_time : 2012-10-09 13:34:01
handler_name : Apple Alias Data Handler
timecode : 01:00:00:00
Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s
Metadata:
creation_time : 2012-10-09 13:34:01
handler_name : Apple Alias Data Handler
Stream #0:2(eng): Data: none (tmcd / 0x64636D74)
Metadata:
creation_time : 2012-10-09 13:42:30
handler_name : Apple Alias Data Handler
timecode : 01:00:00:00
Eu quero uma imagem de fundo com esse vídeo em cima e salvá-lo como um arquivo mp4. Enquanto isso, o vídeo precisa ser dimensionado e recortado Eu preciso de uma solução que pode ser automatizada e colocada em um servidor, é por isso que eu tentei ffmpeg
Isso é o que você tem no momento:
ffmpeg -loop 1 -f image2 -i background.png -r 25 -an -vcodec libx264 -b:v 1500k -vf "movie=test.mov[movie];[movie]scale=max(552\, 420*iw/ih):-1[OUT1]; [OUT1]crop=552:420[OUT2]; [0][OUT2] overlay=0:0 [out]" -s 552x420 -y output.mp4
O problema é que, de alguma forma, a transparência é perdida e o fundo é preto, em vez da imagem subjacente. Quando eu tento o mesmo comando ffmpeg com um FLV transparente como entrada, ele funciona, mas eu gostaria que ele funcionasse sem ter que converter todos os arquivos de origem para outro formato
Qualquer ajuda com isso seria muito apreciada!
Esta é a minha configuração atual do ffmpeg:
ffmpeg version 1.1.2 Copyright (c) 2000-2013 the FFmpeg developers
built on Mar 4 2013 11:19:29 with Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-libtheora --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libspeex --enable-libfreetype --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang --arch=x86_64 --enable-yasm --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid --enable-nonfree --enable-libfaac
libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 86.100 / 54. 86.100
libavformat 54. 59.106 / 54. 59.106
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 32.100 / 3. 32.100
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
EDITAR
Esta é a saída completa do console para o comando:
ffmpeg -loop 1 -f image2 -i background.jpg -r 25 -an -vframes 2500 -vcodec libx264 -b:v 1500k -vf "movie=test.mov[movie];[movie]scale=max(552\, 420*iw/ih):-1[OUT1]; [OUT1]crop=552:420[OUT2]; [0][OUT2] overlay=0:0 [out]" -s 552x420 -y output.mp4
ffmpeg version 1.1.2 Copyright (c) 2000-2013 the FFmpeg developers
built on Mar 4 2013 11:19:29 with Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-libtheora --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libspeex --enable-libfreetype --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang --arch=x86_64 --enable-yasm --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid --enable-nonfree --enable-libfaac
libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 86.100 / 54. 86.100
libavformat 54. 59.106 / 54. 59.106
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 32.100 / 3. 32.100
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Input #0, image2, from 'background.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj444p, 1024x576, 25 fps, 25 tbr, 25 tbn, 25 tbc
[libx264 @ 0x7fddc3813600] using cpu capabilities: none!
[libx264 @ 0x7fddc3813600] profile High, level 3.0
[libx264 @ 0x7fddc3813600] 264 - core 128 - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - 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=12 lookahead_threads=2 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=1500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
Metadata:
encoder : Lavf54.59.106
Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 552x420, q=-1--1, 1500 kb/s, 12800 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg -> libx264)
Press [q] to stop, [?] for help
frame= 2500 fps= 53 q=32766.0 Lsize= 9772kB time=00:01:39.92 bitrate= 801.2kbits/s
video:9742kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.309877%
[libx264 @ 0x7fddc3813600] frame I:10 Avg QP: 1.97 size: 58522
[libx264 @ 0x7fddc3813600] frame P:634 Avg QP: 4.19 size: 7889
[libx264 @ 0x7fddc3813600] frame B:1856 Avg QP: 7.63 size: 2364
[libx264 @ 0x7fddc3813600] consecutive B-frames: 1.0% 0.0% 0.1% 98.9%
[libx264 @ 0x7fddc3813600] mb I I16..4: 47.6% 16.4% 36.0%
[libx264 @ 0x7fddc3813600] mb P I16..4: 0.1% 0.1% 0.3% P16..4: 2.9% 2.9% 2.6% 0.0% 0.0% skip:91.1%
[libx264 @ 0x7fddc3813600] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 2.3% 1.1% 1.1% direct: 3.0% skip:92.4% L0:23.8% L1:24.1% BI:52.0%
[libx264 @ 0x7fddc3813600] final ratefactor: -0.23
[libx264 @ 0x7fddc3813600] 8x8 transform intra:16.7% inter:26.0%
[libx264 @ 0x7fddc3813600] coded y,uvDC,uvAC intra: 65.5% 84.3% 83.9% inter: 5.8% 4.8% 3.8%
[libx264 @ 0x7fddc3813600] i16 v,h,dc,p: 60% 21% 8% 12%
[libx264 @ 0x7fddc3813600] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 31% 9% 3% 5% 8% 6% 6% 5%
[libx264 @ 0x7fddc3813600] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 27% 11% 4% 7% 9% 7% 6% 6%
[libx264 @ 0x7fddc3813600] i8c dc,h,v,p: 34% 43% 17% 7%
[libx264 @ 0x7fddc3813600] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7fddc3813600] ref P L0: 61.2% 19.9% 10.0% 8.8%
[libx264 @ 0x7fddc3813600] ref B L0: 91.0% 7.3% 1.7%
[libx264 @ 0x7fddc3813600] ref B L1: 98.7% 1.3%
[libx264 @ 0x7fddc3813600] kb/s:798.01
ffmpeg
atualmente não suporta canais alfa ProRes. (Esta é uma solicitação de melhoria aberta .) Se você puder usar o codec QuickTime Animation (RLE) ( qtrle
) para o filme de sobreposição, então isso deve funcionar.
Tags ffmpeg alpha-channel overlay