如何为视频添加放大效果?

如何为视频添加放大效果?

我正在从事一个项目,需要从输入的一组视频或图像中生成一个视频。

问题是当我生成视频时我必须为每个输入元素添加放大效果。

我通过这种方式解决了图像问题(我对每个图像重复此命令):

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

相关内容