ffmpeg - 连接/合并彼此

ffmpeg - 连接/合并彼此

我正在尝试将两个视频拼接在一起。我已经执行了以下两个 ffmpeg 命令:

ffmpeg -i 2_Out_of_Control.VOB -aspect 16:9 \
-vf "yadif=0:-1:0,crop=w=714:h=476:x=6:y=0,scale=1280:720,boxblur=lp=13" \
-c:v libx264 -preset medium \
-c:a copy \
'2(blurred)Out_of_Control.mp4'

ffmpeg -i 2_Out_of_Control.VOB \
-vf "yadif=0:-1:0,crop=w=714:h=476:x=6:y=0,scale=1080:720" \
-c:v libx264 -preset medium \
-c:a copy \
'2(clear)Out_of_Control.mp4'

我目前无法将“清晰”版本居中并置于“模糊”版本的上方。我不确定该怎么做。只能通过使用 OpenShot 来实现,但如果有一个 ffmpeg 命令可以将两个视频合并在一起,那就更好了。

输入文件详细信息:

$ ffmpeg -i 2_Out_of_Control.VOB 
ffmpeg version git-2013-10-03-c7fe2a3 Copyright (c) 2000-2013 the FFmpeg developers
  built on Oct  4 2013 05:22:06 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --prefix=/home/username/ffmpeg_build --extra-cflags=-I/home/username/ffmpeg_build/include --extra-ldflags=-L/home/username/ffmpeg_build/lib --bindir=/home/username/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
  libavutil      52. 46.100 / 52. 46.100
  libavcodec     55. 34.100 / 55. 34.100
  libavformat    55. 19.100 / 55. 19.100
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 88.101 /  3. 88.101
  libswscale      2.  5.100 /  2.  5.100
  libswresample   0. 17.103 /  0. 17.103
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mpeg, from '2_Out_of_Control.VOB':
  Duration: 00:05:00.01, start: 0.500000, bitrate: 4574 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, smpte170m), 720x480 [SAR 8:9 DAR 4:3], max. 9334 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 384 kb/s
At least one output file must be specified

答案1

将普通视频叠加在模糊版本上

正常图像覆盖在模糊版本上
在模糊的原始图像上叠加 1/2 大小的图像的示例(或者它可以表示原始大小叠加层后面的 2 倍大小的背景)

我合并了您的原始参数,但裁剪和强制高档可能会导致有点模糊和挤压或拉伸的外观(但在这种情况下我不确定,因为我目前无法测试)。

ffmpeg -i input -filter_complex \
"[0:v]yadif=0:-1:0,crop=w=714:h=476:x=6:y=0,split[v1][v2]; \
 [v1]scale=1280:720,boxblur=lp=13[bg]; \
 [v2]scale=1080:720[fg]; \
 [bg][fg]overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2,setdar=16/9[video]" \
 -map "[video]" -c:v libx264 -preset medium -crf 20 -c:a copy \
 output.mp4

过滤图

  1. 去隔行yadifcrop, 进而split结果。将这些输出命名为[v1][v2]

  2. scaleboxblur [v1]. 将输出命名[bg]为“background”。

  3. scale [v2]. 将输出命名[fg]为“前台”。

  4. overlay [fg]置于 之上[bg]。使其居中。然后使用 来设置显示宽高比setdar. 命名此输出[video],以便您可以使用-map

另请参阅

相关内容