ffmpeg filter_complex concat 不包含音频

ffmpeg filter_complex concat 不包含音频

我已经成功组装了一个 ffmpeg 过滤器复合体,它:

  1. 将 FBI 警告 (fbi.mp4) 缩放到训练视频 (train.mp4) 的大小($w:$h)。
  2. 将 FBI 警告置于中央。
  3. 将 FBI 警告和培训视频连接在一起。
  4. 用旋转的水印 (image.png) 标记内容。

以下适用于静音视频(*请参阅下面的 ffmpeg 版本信息):

ffmpeg -y -i fbi.mp4 -i train.mp4 -i $img -filter_complex "
[0:v]            scale=$w:-1                                 [fbi_sca];
[fbi_sca]        pad=$w:$h:($w-iw)/2:($h-ih)/2               [fbi_pad];
[fbi_pad][1:v]   concat=n=2:v=1                              [concat];
[2:v]            rotate=-PI/4:c=none:ow=rotw(iw):oh=roth(ih) [rotate];
[concat][rotate] overlay=(W-w)/2+110:(H-h)/2-90              [out]
" -map [out] -codec:a copy -c:v libx264 final.mp4

我的问题如下面所述:

有人可以将上述命令/filter_complex 重写为:

  1. 自动获取训练视频(train.mp4)的宽度和高度,而无需先探测它、解析它并填充变量 $w 和 $h(如果我必须在单独的步骤中执行此操作,那没问题,但我不想这样做)。

  2. (更重要的是)在训练视频中同时考虑视频和音频,以便:

    a. 过滤器不可知论者关于视频和音频出现在哪些流中,1 或 0。

    b. 我可以使用同样的情结适用于没有音轨且只有视频轨道的训练视频。

    c. train.mp4 音频在连接的输出中从正确的位置开始。

*FFMPEG 版本:

$ ffmpeg -version  

ffmpeg version N-69568-g21051af Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
libavutil      54. 18.100 / 54. 18.100
libavcodec     56. 21.102 / 56. 21.102
libavformat    56. 19.100 / 56. 19.100
libavdevice    56.  4.100 / 56.  4.100
libavfilter     5.  9.103 /  5.  9.103
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  1.100 /  1.  1.100
libpostproc    53.  3.100 / 53.  3.100

答案1

我也遇到了同样的问题,我有一种方法可以将音频附加回此过滤器,只需添加

[0:a]样本=44100;

它将以 44100 Hz 的频率重新采样音频(根据需要更改此值)但是音频现在会存在。希望有所帮助。

相关内容