如何做透明视频合成?
我有两个a.mp4,b.mp4 两个文件,用 ffmpeg -i a.mp4 -i b.mp4 -filter_complex overlay ab.mp4 可以叠加在一起。但是我想在上层的b.mp4加个透明度。怎么做这个命令?
请问楼主,最后这个出来的可用的命令是长什么样子的呢?:D http://bbs.chinaffmpeg.com/forum.php?mod=viewthread&tid=252#lastpost
可以参考这篇帖子 多谢,大神,可以了···
大神再帮我看一下,
windows ffmpeg 2.8上没有问题,但是我用ndk编译ffmpeg2.8一直没有成功,下载的别人编译的 ffmpeg 2.4
我再android下用ffmpeg 2.4 执行这个指令一直报错。
1|root@android:/storage/sdcard1 # ./ffmpeg -i /sdcard/01/a2.mp4 -i /sdcard/01/b.mp4 -i /sdcard/01/logo.png -vf "format=rgb24,setsar=sar=1/1;format=rgb24,setsar=sar=1/1;blend=all_mode='addition':all_opacity=1,format=rgb24; overlay=20:20:enable='between(t,1,2)'" -af "amovie=/sdcard/01/a.mp3;amix=inputs=2:duration=shortest:dropout_transition=2" -strict -2 /sdcard/01/a_new.mp4
duration=shortest:dropout_transition=2" -strict -2 /sdcard/01/a_new.mp4 <
ffmpeg version n2.4 Copyright (c) 2000-2014 the FFmpeg developers
built on Sep 19 2014 16:16:42 with gcc 4.8 (GCC)
configuration: --target-os=linux --cross-prefix=/home/sb/Source-Code/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/sb/Source-Code/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/sb/Source-Code/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/sb/Source-Code/ffmpeg-android/build/armeabi-v7a-neon --extra-cflags='-I/home/sb/Source-Code/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all -mfpu=neon' --extra-ldflags='-L/home/sb/Source-Code/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-lib
-lpng -lexpat -lm' --extra-cxxflags=
libavutil 54.7.100 / 54.7.100
libavcodec 56.1.100 / 56.1.100
libavformat 56.4.101 / 56.4.101
libavdevice 56.0.100 / 56.0.100
libavfilter 5.1.100 /5.1.100
libswscale 3.0.100 /3.0.100
libswresample 1.1.100 /1.1.100
libpostproc 53.0.100 / 53.0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/sdcard/01/a2.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.0.100
Duration: 00:00:07.52, start: 0.100000, bitrate: 577 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 480x480 , 616 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 16000 Hz, mono, fltp, 21 kb/s (default)
Metadata:
handler_name : SoundHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '/sdcard/01/b.mp4':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V mp42isom
creation_time : 2014-01-27 05:13:09
Duration: 00:00:10.00, start: 0.000000, bitrate: 929 kb/s
Stream #1:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv), 480x480 , 922 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)
Metadata:
creation_time : 2014-01-27 05:13:09
handler_name : Mainconcept MP4 Video Media Handler
encoder : AVC Coding
Input #2, png_pipe, from '/sdcard/01/logo.png':
Duration: N/A, bitrate: N/A
Stream #2:0: Video: png, rgba, 80x27 , 25 tbr, 25 tbn, 25 tbc
format=rgb24,setsar=sar=1/1;format=rgb24,setsar=sar=1/1;blend=all_mode='addition':all_opacity=1,format=rgb24; overlay=20:20:enable='between(t,1,2)'' does not have exactly one input and output.
[0m[4;31mError opening filters!
有可能是和移植有关系,没有在Android下面这么玩过…… 大神,我想把一个遮罩类带透明区域的mov遮盖住底部的视频,这个指令 能用overlay实现吗?(不知道怎么把特定的区域变透明)
或者用其它的指令怎么实现
filter里面有个chroma key的方法,可以搜搜 Make every green pixel in the input image transparent:
ffmpeg -i input.png -vf chromakey=green out.png
Overlay a greenscreen-video on top of a static black background.
ffmpeg -f lavfi -i color=c=black:s=1280x720 -i video.mp4 -shortest -filter_complex "chromakey=0x70de77:0.1:0.2;overlay" -map "" output.mkv Make every green pixel in the input image transparent:
ffmpeg -i input.png -vf chromakey=green out.png
Overlay a greenscreen-video on top of a static black background.
ffmpeg -f lavfi -i color=c=black:s=1280x720 -i video.mp4 -shortest -filter_complex "chromakey=0x70de77:0.1:0.2;overlay" -map "" output.mkv
页:
[1]
2