两个视频的FFMPEG叠加问题,第二个输入声音丢失

时间:2013-01-08 10:05:42

标签: .net audio video ffmpeg overlay

我正在尝试使用ffmpeg实现覆盖,将两个flv文件作为输入并输出并同时播放两个视频。使用以下ffmpeg命令可以正常工作:

ffmpeg -i input1.flv -vf "[in] scale=359:320, pad=2*iw+6:ih [left]; movie=input2.flv, scale=359:320 [right]; [left][right] overlay=365:0 [out]" -b:v 3600k -y output.flv

但问题在于第二个视频的声音,而output.flv中缺少该声音,output.flv中只有input1声音可用。

控制台输出为:

ffmpeg version N-47062-g26c531c Copyright (c) 2000-2012 the FFmpeg developers
  built on Nov 25 2012 12:23:20 with gcc 4.7.2 (GCC)
  configuration: --disable-static --enable-shared --enable-gpl --enable-version3
 --disable-pthreads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib
--enable-frei0r --enable-libass --enable-lib`enter code here`opencore-amrnb --enable-libopencore-
amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libnut -
-enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger -
-enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvo-aacenc --
enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enab
le-libxavs --enable-libxvid --enable-zlib
  libavutil      52.  9.100 / 52.  9.100
  libavcodec     54. 77.100 / 54. 77.100
  libavformat    54. 37.100 / 54. 37.100
  libavdevice    54.  3.100 / 54.  3.100
  libavfilter     3. 23.102 /  3. 23.102
  libswscale      2.  1.102 /  2.  1.102
  libswresample   0. 17.101 /  0. 17.101
  libpostproc    52.  2.100 / 52.  2.100
Input #0, flv, from 'input1.flv':
  Metadata:
    canSeekToEnd    : false
    createdby       : FMS 4.0
    creationdate    : Mon Jan 07 07:05:40 2013
    encoder         : Lavf54.37.100
  Duration: 00:03:04.81, start: 0.000000, bitrate: 314 kb/s
    Stream #0:0: Video: flv1, yuv420p, 160x120, 3600 kb/s, 1k tbr, 1k tbn, 1k tb
c
    Stream #0:1: Audio: mp3, 22050 Hz, mono, s16, 32 kb/s
Output #0, flv, to 'output.flv':
  Metadata:
    canSeekToEnd    : false
    createdby       : FMS 4.0
    creationdate    : Mon Jan 07 07:05:40 2013
    encoder         : Lavf54.37.100
    Stream #0:0: Video: flv1 ([2][0][0][0] / 0x0002), yuv420p, 724x320, q=2-31,
3600 kb/s, 1k tbn, 1k tbc
    Stream #0:1: Audio: mp3 ([2][0][0][0] / 0x0002), 22050 Hz, mono, s16p
Stream mapping:
  Stream #0:0 -> #0:0 (flv -> flv)
  Stream #0:1 -> #0:1 (mp3 -> libmp3lame)
Press [q] to stop, [?] for help
frame=  120 fps=0.0 q=4.5 size=     550kB time=00:00:08.57 bitrate= 525.3kbits/s
frame=  225 fps=221 q=2.0 size=    1422kB time=00:00:18.26 bitrate= 637.6kbits/s
Buffer queue overflow, dropping.
[Parsed_overlay_4 @ 02259ae0] Buffer queue overflow, dropping.
    Last message repeated 1 times
frame=  338 fps=222 q=2.0 size=    2414kB time=00:00:26.97 bitrate= 733.0kbits/s
Buffer queue overflow, dropping.
[Parsed_overlay_4 @ 02259ae0] Buffer queue overflow, dropping.
    Last message repeated 12 times
frame=  452 fps=223 q=2.0 size=    3326kB time=00:00:35.38 bitrate= 770.1kbits/s
frame=  562 fps=223 q=2.0 size=    4246kB time=00:00:43.15 bitrate= 806.0kbits/s
Buffer queue overflow, dropping.
[Parsed_overlay_4 @ 02259ae0] Buffer queue overflow, dropping.
    Last message repeated 11 times
frame=  669 fps=221 q=2.0 size=    5237kB time=00:00:51.28 bitrate= 836.6kbits/s
frame=  777 fps=220 q=2.0 size=    6105kB time=00:00:58.75 bitrate= 851.2kbits/s
frame=  893 fps=222 q=2.0 size=    6897kB time=00:01:06.72 bitrate= 846.8kbits/s
frame= 1006 fps=222 q=2.0 size=    7701kB time=00:01:14.60 bitrate= 845.6kbits/s
frame= 1121 fps=223 q=2.0 size=    8539kB time=00:01:22.45 bitrate= 848.3kbits/s
frame= 1235 fps=223 q=2.0 size=    9316kB time=00:01:30.39 bitrate= 844.3kbits/s
frame= 1344 fps=223 q=2.0 size=   10135kB time=00:01:37.98 bitrate= 847.3kbits/s
Buffer queue overflow, dropping.
[Parsed_overlay_4 @ 02259ae0] Buffer queue overflow, dropping.
    Last message repeated 33 times
frame= 1437 fps=220 q=2.0 size=   10800kB time=00:01:46.67 bitrate= 829.3kbits/s
frame= 1540 fps=219 q=2.0 size=   11577kB time=00:01:54.16 bitrate= 830.7kbits/s
frame= 1651 fps=219 q=2.0 size=   12330kB time=00:02:01.64 bitrate= 830.3kbits/s
frame= 1756 fps=218 q=2.0 size=   13141kB time=00:02:09.06 bitrate= 834.1kbits/s
frame= 1859 fps=217 q=2.0 size=   13879kB time=00:02:16.28 bitrate= 834.3kbits/s
frame= 1962 fps=217 q=2.0 size=   14703kB time=00:02:23.69 bitrate= 838.2kbits/s
frame= 2070 fps=217 q=2.0 size=   15448kB time=00:02:30.98 bitrate= 838.2kbits/s
frame= 2176 fps=216 q=2.0 size=   16241kB time=00:02:38.46 bitrate= 839.6kbits/s
Buffer queue overflow, dropping.
[Parsed_overlay_4 @ 02259ae0] Buffer queue overflow, dropping.
    Last message repeated 20 times
frame= 2275 fps=215 q=2.0 size=   16990kB time=00:02:46.78 bitrate= 834.5kbits/s
frame= 2389 fps=216 q=1.6 size=   17784kB time=00:02:54.44 bitrate= 835.1kbits/s
frame= 2493 fps=216 q=2.0 size=   18555kB time=00:03:01.73 bitrate= 836.4kbits/s
frame= 2534 fps=216 q=2.0 Lsize=   18945kB time=00:03:04.81 bitrate= 839.7kbits/
s
video:18227kB audio:588kB subtitle:0 global headers:0kB muxing overhead 0.691204
%

我认为-map是用于两个视频的音频处理的过滤器。请看这个链接。

Superimposing two videos onto a static image?

先谢谢。

1 个答案:

答案 0 :(得分:2)

-filter_complex vs -vf

默认流选择

  • 默认情况下,只会为输出选择第一个输入中频道最多的音频流(请参阅overlay上的文档。)

  • 使用-map 1:a -c:a copy选项添加其他音频流,例如1:a。 {{1}}引用第二个输入:选择音频流。您可以在ffmpeg控制台输出中查看每个流的标记方式。请注意,此示例只是将附加音频流从输入“复制并粘贴”到输出,因此您的输出将具有两个单独的音频流,而不是一个混合音频流。

  • 要将两个输入音频流混合到一个输出音频流中,您可以使用stream selectionamerge过滤器。请参阅FFmpeg Wiki上的pan

相关问题