我正在从事一个项目,需要从输入的一组视频或图像中生成一个视频。
问题是当我生成视频时我必须为每个输入元素添加放大效果。
我通过这种方式解决了图像问题(我对每个图像重复此命令):
ffmpeg -loop 1 -i test.jpg -vf "zoompan=z='min(zoom+0.0015,1.5)':d=125" -c:v libx264 -pix_fmt yuvj420p -t 5 -s "796x450" test.mp4
然后我把生成的视频连接起来。
现在,我尝试对视频使用相同的解决方案,但没有成功。我应该在视频之前转换图片吗?或者还有其他方法吗?
谢谢你!
更新
这是我对视频使用的命令。
ffmpeg -i small.mp4 -vf "zoompan=z='min(zoom+0.0015,1.5)':d=125:s=640x360" -c:v libx264 -c:a libfdk_aac -y smallzoom.mp4ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers
built on Aug 7 2014 18:14:20 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
configuration: --prefix=/home/stuzzo/ffmpeg_build --extra-cflags=-I/home/stuzzo/ffmpeg_build/include --extra-ldflags=-L/home/stuzzo/ffmpeg_build/lib --bindir=/home/stuzzo/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-nonfree
libavutil 52. 98.100 / 52. 98.100
libavcodec 55. 72.102 / 55. 72.102
libavformat 55. 51.101 / 55. 51.101
libavdevice 55. 13.102 / 55. 13.102
libavfilter 4. 11.102 / 4. 11.102
libswscale 2. 6.100 / 2. 6.100
libswresample 0. 19.100 / 0. 19.100
libpostproc 52. 3.100 / 52. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'small.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
creation_time : 2010-03-20 21:29:11
encoder : HandBrake 0.9.4 2009112300
Duration: 00:00:05.57, start: 0.000000, bitrate: 551 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 560x320, 465 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc (default)
Metadata:
creation_time : 2010-03-20 21:29:11
encoder : JVT/AVC Coding
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 83 kb/s (default)
Metadata:
creation_time : 2010-03-20 21:29:11
[libx264 @ 0x3066180] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x3066180] profile High, level 3.0
[libx264 @ 0x3066180] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - 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=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'smallzoom.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
encoder : Lavf55.51.101
Stream #0:0(und): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 640x360, q=-1--1, 30 fps, 15360 tbn, 30 tbc (default)
Metadata:
creation_time : 2010-03-20 21:29:11
encoder : Lavc55.72.102 libx264
Stream #0:1(eng): Audio: aac (libfdk_aac) ([64][0][0][0] / 0x0040), 48000 Hz, mono, s16, 104 kb/s (default)
Metadata:
creation_time : 2010-03-20 21:29:11
encoder : Lavc55.72.102 libfdk_aac
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
[output stream 0:0 @ 0x30671a0] 100 buffers queued in output stream 0:0, something may be wrong.
frame= 175 fps= 11 q=-1.0 Lsize= 244kB time=00:00:05.76 bitrate= 346.6kbits/s dup=0 drop=20575
video:165kB audio:71kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.131025%
[libx264 @ 0x3066180] frame I:1 Avg QP:20.98 size: 20122
[libx264 @ 0x3066180] frame P:46 Avg QP:21.52 size: 2151
[libx264 @ 0x3066180] frame B:128 Avg QP:25.80 size: 385
[libx264 @ 0x3066180] consecutive B-frames: 2.3% 0.0% 1.7% 96.0%
[libx264 @ 0x3066180] mb I I16..4: 46.3% 27.6% 26.1%
[libx264 @ 0x3066180] mb P I16..4: 1.8% 0.4% 0.1% P16..4: 37.3% 7.8% 5.7% 0.0% 0.0% skip:46.8%
[libx264 @ 0x3066180] mb B I16..4: 0.0% 0.1% 0.0% B16..8: 22.7% 1.1% 0.2% direct: 0.4% skip:75.5% L0:45.0% L1:52.6% BI: 2.4%
[libx264 @ 0x3066180] 8x8 transform intra:25.2% inter:68.0%
[libx264 @ 0x3066180] coded y,uvDC,uvAC intra: 29.7% 62.3% 31.5% inter: 2.9% 9.0% 1.4%
[libx264 @ 0x3066180] i16 v,h,dc,p: 0% 30% 1% 69%
[libx264 @ 0x3066180] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 30% 17% 4% 6% 4% 13% 4% 9%
[libx264 @ 0x3066180] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 30% 9% 4% 8% 6% 13% 4% 7%
[libx264 @ 0x3066180] i8c dc,h,v,p: 44% 40% 9% 7%
[libx264 @ 0x3066180] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x3066180] ref P L0: 61.2% 5.1% 22.5% 11.1%
[libx264 @ 0x3066180] ref B L0: 82.0% 13.6% 4.4%
[libx264 @ 0x3066180] ref B L1: 94.0% 6.0%
[libx264 @ 0x3066180] kb/s:230.91
答案1
下面是一个命令,可完成所有操作:
ffmpeg -y -loop 1 -i image1jpg -loop 1 -i image2.jpg -loop 1 -i image3.jpg -filter_complex "[0:v]zoompan=z='min(zoom+0.0015,1.5)':d=125,trim=duration=5,fade=t=in:st=0:d=0.5,fade=t=out:st=4.5:d=0.5,scale=796x450,setpts=PTS-STARTPTS[v0];[1:v]zoompan=z='min(zoom+0.0015,1.5)':d=125,trim=duration=5,fade=t=in:st=0:d=0.5,fade=t=out:st=4.5:d=0.5,scale=796x450,setpts=PTS-STARTPTS[v1];[2:v]zoompan=z='min(zoom+0.0015,1.5)':d=125,trim=duration=5,fade=t=in:st=0:d=0.5,fade=t=out:st=4.5:d=0.5,scale=796x450,setpts=PTS-STARTPTS[v2]; [v0][v1][v2] concat=n=3:v=1:a=0, format=yuv420p[v]" -map '[v]' -c:v libx264 -pix_fmt yuvj420p -q:v 1 test.mp4