[FFmpeg-user] Help with complex filter chain?

Paul B Mahol onemda at gmail.com
Thu Nov 26 09:42:12 CET 2015


On 11/26/15, Mike Grommet <mgrommet at techfriends.com> wrote:
> Hi group,  here is what I'm trying to do:
>
> I have one background, and two videos
> - I'd like to scale each video down to 320x240
> - hstack them next to each other
> - overlay them over a background image
> - Merge the audio from the 2 videos, and map it to the final output
>
>
> Here is what I have so far -- but it doesn't work, I get nothing but a
> blank video output.
> I'm pretty inexperienced with ffmpeg, so I'm sure I'm probably missing
> something dumb trying to chain all of the filters together...
>
>   ffmpeg -i Background.png -i a.webm -i b.webm -loop 1 -filter_complex
> "[0:v]overlay=0:57:shortest=1[c];[1:v]scale=320:240[left];[2:v]scale=320:240[right];[1:a][2:a]amerge=inputs=2[a];[left][right]hstack[out]"
> -map [out] -map "[c]" -map "[a]" blah.webm

ffmpeg -loop 1 -i Background.png -i a.webm -i b.webm -filter_complex
"[1:v]scale=320:240[left];[2:v]scale=320:240[right];[left][right]hstack[out],[v:0][out]overlay=0:57:shortest=1[video];[1:a][2:a]amerge=inputs=2[audio]"
-map "[audio]" -map "[video]" blah.webm

>
> Any advice?   I've included the initial ffmpeg output below, in case it
> might be helpful.
>
>
> ffmpeg version N-76637-gedd0c1d Copyright (c) 2000-2015 the FFmpeg
> developers
>    built with gcc 5.2.0 (GCC)
>    configuration: --enable-gpl --enable-version3 --disable-w32threads
> --enable-av
> isynth --enable-bzlib --enable-fontconfig --enable-frei0r
> --enable-gnutls --enab
> le-iconv --enable-libass --enable-libbluray --enable-libbs2b
> --enable-libcaca --
> enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm
> --enable-l
> ibilbc --enable-libmodplug --enable-libmp3lame
> --enable-libopencore-amrnb --enab
> le-libopencore-amrwb --enable-libopenjpeg --enable-libopus
> --enable-librtmp --en
> able-libschroedinger --enable-libsoxr --enable-libspeex
> --enable-libtheora --ena
> ble-libtwolame --enable-libvidstab --enable-libvo-aacenc
> --enable-libvo-amrwbenc
>   --enable-libvorbis --enable-libvpx --enable-libwavpack
> --enable-libwebp --enabl
> e-libx264 --enable-libx265 --enable-libxavs --enable-libxvid
> --enable-libzimg --
> enable-lzma --enable-decklink --enable-zlib
>    libavutil      55.  5.100 / 55.  5.100
>    libavcodec     57. 15.100 / 57. 15.100
>    libavformat    57. 14.100 / 57. 14.100
>    libavdevice    57.  0.100 / 57.  0.100
>    libavfilter     6. 15.100 /  6. 15.100
>    libswscale      4.  0.100 /  4.  0.100
>    libswresample   2.  0.101 /  2.  0.101
>    libpostproc    54.  0.100 / 54.  0.100
> [png @ 0000000000455060] Broken zTXt chunk
>      Last message repeated 2 times
> Input #0, png_pipe, from 'FinalBackground.png':
>    Duration: N/A, bitrate: N/A
>      Stream #0:0: Video: png, rgb24(pc), 1280x720 [SAR 2834:2834 DAR
> 16:9], 25 tb
> r, 25 tbn, 25 tbc
> Input #1, matroska,webm, from 'a.webm':
>    Metadata:
>      encoder         : GStreamer matroskamux version 1.5.91
>      creation_time   : 2015-10-29 12:59:45
>    Duration: 00:00:59.24, start: 0.000000, bitrate: 442 kb/s
>      Stream #1:0(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 1k
> tbr, 1k
> tbn, 1k tbc (default)
>      Metadata:
>        title           : Video
>      Stream #1:1(eng): Audio: vorbis, 48000 Hz, stereo, fltp (default)
>      Metadata:
>        title           : Audio
> Input #2, matroska,webm, from 'b.webm':
>    Metadata:
>      encoder         : GStreamer matroskamux version 1.5.91
>      creation_time   : 2015-10-29 12:59:45
>    Duration: 00:00:59.24, start: 0.000000, bitrate: 494 kb/s
>      Stream #2:0(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 1k
> tbr, 1k
> tbn, 1k tbc (default)
>      Metadata:
>        title           : Video
>      Stream #2:1(eng): Audio: vorbis, 48000 Hz, stereo, fltp (default)
>      Metadata:
>        title           : Audio
> File 'blah.webm' already exists. Overwrite ? [y/N] y
> [Parsed_amerge_3 @ 00000000004c8580] No channel layout for input 1
> [Parsed_amerge_3 @ 00000000004c8580] Input channel layouts overlap:
> output layout will be determined by the number of distinct input channels
> [libvpx-vp9 @ 0000000002d33320] v1.5.0
> [libvpx-vp9 @ 0000000002d13560] v1.5.0
> [libopus @ 00000000004de020] No bit rate set. Defaulting to 256000 bps.
> Output #0, webm, to 'blah.webm':
>    Metadata:
>      encoder         : Lavf57.14.100
>      Stream #0:0: Video: vp9 (libvpx-vp9), yuv420p, 640x240 [SAR 1:1 DAR
> 8:3], q=
> -1--1, 200 kb/s, 1k fps, 1k tbn, 1k tbc
>      Metadata:
>        encoder         : Lavc57.15.100 libvpx-vp9
>      Stream #0:1: Video: vp9 (libvpx-vp9), yuv420p, 1280x720 [SAR 1:1
> DAR 16:9],
> q=-1--1, 200 kb/s, 25 fps, 1k tbn, 25 tbc
>      Metadata:
>        encoder         : Lavc57.15.100 libvpx-vp9
>      Stream #0:2: Audio: opus (libopus), 48000 Hz, 5.0, flt, 256 kb/s
> (default)
>      Metadata:
>        encoder         : Lavc57.15.100 libopus
> Stream mapping:
>    Stream #0:0 (png) -> overlay:main
>    Stream #1:0 (vp8) -> overlay:overlay
>    Stream #1:0 (vp8) -> scale
>    Stream #1:1 (vorbis) -> amerge:in0
>    Stream #2:0 (vp8) -> scale
>    Stream #2:1 (vorbis) -> amerge:in1
>    hstack -> Stream #0:0 (libvpx-vp9)
>    overlay -> Stream #0:1 (libvpx-vp9)
>    amerge -> Stream #0:2 (libopus)
>
>
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>


More information about the ffmpeg-user mailing list