Reputation: 11
I'm trying to achieve an overlay with ffmpeg which take the two flv files as input and make a output and both videos playing simultaneously. things are working fine with below ffmpeg command:
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
But issue is with the sound of second video and that is missing from the output.flv
, only input1 sound is available in the output.flv
.
Console output is:
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
%
I think -map is filter that is for the audio handling of both video. see this link.
Superimposing two videos onto a static image?
Upvotes: 0
Views: 4547
Reputation: 133743
-filter_complex
vs -vf
Use -filter_complex
instead of -vf
when you have one or more filter inputs, and/or one or more outputs.
-filter_complex
is designed to be used with complex filtergraphs, and -vf
is used for simple filtergraphs which uses exactly one input and output.
Refer to the link you provided, Superimposing two videos onto a static image?, to see an example of using -filter_complex
with the overlay
filter.
By default only the audio stream with the most channels from the first input will be selected for the output (see documentation on stream selection).
You add another audio stream with the -map
option, such as -map 1:a -c:a copy
. The 1:a
refers to the second input:select audio stream(s). You can see how each stream is labeled in the ffmpeg console output. Note that this example will simply "copy and paste" the additional audio stream from the input to the output, so your output will have two separate audio streams instead of one mixed audio stream.
To mix two input audio streams into one output audio stream you can use the amerge
and pan
filters. See the 2 × stereo → stereo example on the FFmpeg Wiki.
Upvotes: 5