[FFmpeg-trac] #10073(ffmpeg:new): xstack stretches inputs vertically in some situations

FFmpeg trac at avcodec.org
Fri Nov 25 19:02:11 EET 2022


#10073: xstack stretches inputs vertically in some situations
---------------------------------------+----------------------------------
             Reporter:  hans.baldzuhn  |                    Owner:  (none)
                 Type:  defect         |                   Status:  new
             Priority:  normal         |                Component:  ffmpeg
              Version:  unspecified    |               Resolution:
             Keywords:  xstack         |               Blocked By:
             Blocking:                 |  Reproduced by developer:  0
Analyzed by developer:  0              |
---------------------------------------+----------------------------------
Description changed by hans.baldzuhn:

Old description:

> Summary of the bug:
>
> I'm on windows, with the lastest build from https://github.com/BtbN
> /FFmpeg-Builds/releases
>
> I want yo layout some images in a bigger image
>
> If no image touches the bottom of the layout, the picture is stretched to
> touch it.
>
> How to reproduce:
>
> I'm assembling a simple checker in a 3x6 xtack layout
>
> Command with all checker on top line
> {{{
> ffmpeg -y -i C:\Users\hbaldzuhn\Pictures\checker.png -i
> "C:\Users\hbaldzuhn\Pictures\checker.png" -i
> "C:\Users\hbaldzuhn\Pictures\checker.png" -filter_complex
> "[0:v]scale=64:64[v0];[1:v]scale=64:64[v1];[2:v]scale=64:64[v2];[v0][v1][v2]xstack=inputs=3:fill=black:layout=64_64|64_0|320_0"
> -s 384x192 "C:\Users\hbaldzuhn\Pictures\checker.assembly1.png"
> }}}
>
> Command with 2 items on top line and 1 in midle line
> {{{
> ffmpeg -y -i C:\Users\hbaldzuhn\Pictures\checker.png -i
> "C:\Users\hbaldzuhn\Pictures\checker.png" -filter_complex
> "[0:v]scale=64:64[v0];[1:v]scale=64:64[v1];[v0][v1]xstack=inputs=2:fill=black:layout=64_0|320_0"
> -s 384x192 "C:\Users\hbaldzuhn\Pictures\checker.assembly2.png"
> }}}
>
> Command with items on each lines
> {{{
> ffmpeg -y -i C:\Users\hbaldzuhn\Pictures\checker.png -i
> "C:\Users\hbaldzuhn\Pictures\checker.png" -i
> "C:\Users\hbaldzuhn\Pictures\checker.png" -i
> "C:\Users\hbaldzuhn\Pictures\checker.png" -filter_complex
> "[0:v]scale=64:64[v0];[1:v]scale=64:64[v1];[2:v]scale=64:64[v2];[3:v]scale=64:64[v3];[v0][v1][v2][v3]xstack=inputs=4:fill=black:layout=64_64|64_0|320_0|128_128"
> -s 384x192 "C:\Users\hbaldzuhn\Pictures\checker.assembly3.png"
> }}}
>
> Full command and log
> {{{
> ffmpeg.exe -y -i C:\Users\hbaldzuhn\Pictures\checker.png -i
> "C:\Users\hbaldzuhn\Pictures\checker.png" -i
> "C:\Users\hbaldzuhn\Pictures\checker.png" -filter_complex
> "[0:v]scale=64:64[v0];[1:v]scale=64:64[v1];[2:v]scale=64:64[v2];[v0][v1][v2]xstack=inputs=3:fill=black:layout=64_64|64_0|320_0"
> -s 384x192 "C:\Users\hbaldzuhn\Pictures\checker.assembly1.png"
> ffmpeg version N-109226-g2ad199ae31-20221125 Copyright (c) 2000-2022 the
> FFmpeg developers
>   built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1)
>   configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
> --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
> --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug
> --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2
> --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp
> --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl
> --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib
> --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth
> --enable-chromaprint --enable-libdav1d --enable-libdavs2 --disable-
> libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r
> --enable-libgme --enable-libkvazaar --enable-libass --enable-libbluray
> --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist
> --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp
> --enable-lv2 --disable-libmfx --enable-libvpl --enable-openal --enable-
> libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264
> --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-
> librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-
> libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d
> --disable-libdrm --disable-vaapi --enable-libvidstab --enable-vulkan
> --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265
> --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi
> --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-
> ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-
> version=20221125
>   libavutil      57. 43.100 / 57. 43.100
>   libavcodec     59. 54.100 / 59. 54.100
>   libavformat    59. 34.102 / 59. 34.102
>   libavdevice    59.  8.101 / 59.  8.101
>   libavfilter     8. 50.101 /  8. 50.101
>   libswscale      6.  8.112 /  6.  8.112
>   libswresample   4.  9.100 /  4.  9.100
>   libpostproc    56.  7.100 / 56.  7.100
> Input #0, png_pipe, from 'C:\Users\hbaldzuhn\Pictures\checker.png':
>   Duration: N/A, bitrate: N/A
>   Stream #0:0: Video: png, rgba(pc), 240x240 [SAR 3780:3780 DAR 1:1], 25
> fps, 25 tbr, 25 tbn
> Input #1, png_pipe, from 'C:\Users\hbaldzuhn\Pictures\checker.png':
>   Duration: N/A, bitrate: N/A
>   Stream #1:0: Video: png, rgba(pc), 240x240 [SAR 3780:3780 DAR 1:1], 25
> fps, 25 tbr, 25 tbn
> Input #2, png_pipe, from 'C:\Users\hbaldzuhn\Pictures\checker.png':
>   Duration: N/A, bitrate: N/A
>   Stream #2:0: Video: png, rgba(pc), 240x240 [SAR 3780:3780 DAR 1:1], 25
> fps, 25 tbr, 25 tbn
> Stream mapping:
>   Stream #0:0 (png) -> scale:default
>   Stream #1:0 (png) -> scale:default
>   Stream #2:0 (png) -> scale:default
>   xstack:default -> Stream #0:0 (png)
> Press [q] to stop, [?] for help
> Output #0, image2, to
> 'C:\Users\hbaldzuhn\Pictures\checker.assembly1.png':
>   Metadata:
>     encoder         : Lavf59.34.102
>   Stream #0:0: Video: png, rgba(pc, gbr/unknown/unknown, progressive),
> 384x192 [SAR 3:2 DAR 3:1], q=2-31, 200 kb/s, 25 fps, 25 tbn
>     Metadata:
>       encoder         : Lavc59.54.100 png
> [image2 @ 0000026068f376c0] The specified filename
> 'C:\Users\hbaldzuhn\Pictures\checker.assembly1.png' does not contain an
> image sequence pattern or a pattern is invalid.
> [image2 @ 0000026068f376c0] Use a pattern such as %03d for an image
> sequence or use the -update option (with -frames:v 1 if needed) to write
> a single image.
> frame=    1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed=
> 0x
> video:3kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
> muxing overhead: unknown
> }}}
>
> Patches should be submitted to the ffmpeg-devel mailing list and not this
> bug tracker.

New description:

 '''Summary of the bug:'''

 I'm on windows, with the lastest build from https://github.com/BtbN
 /FFmpeg-Builds/releases

 I want yo layout some images in a bigger image

 If no image touches the bottom of the layout, the picture is stretched to
 touch it.

 '''How to reproduce:'''

 I'm assembling a simple checker in a 3x6 xtack layout

 ----

 Command with 2 items on top line and 1 in midle line
 {{{
 ffmpeg -y -i C:\Users\hbaldzuhn\Pictures\checker.png -i
 "C:\Users\hbaldzuhn\Pictures\checker.png" -i
 "C:\Users\hbaldzuhn\Pictures\checker.png" -filter_complex
 "[0:v]scale=64:64[v0];[1:v]scale=64:64[v1];[2:v]scale=64:64[v2];[v0][v1][v2]xstack=inputs=3:fill=black:layout=64_64|64_0|320_0"
 -s 384x192 "C:\Users\hbaldzuhn\Pictures\checker.assembly1.png"
 }}}
 [[Image(checker.assembly1.png)]]

 ----

 Command with all checker on top line
 {{{
 ffmpeg -y -i C:\Users\hbaldzuhn\Pictures\checker.png -i
 "C:\Users\hbaldzuhn\Pictures\checker.png" -filter_complex
 "[0:v]scale=64:64[v0];[1:v]scale=64:64[v1];[v0][v1]xstack=inputs=2:fill=black:layout=64_0|320_0"
 -s 384x192 "C:\Users\hbaldzuhn\Pictures\checker.assembly2.png"
 }}}
 [[Image(checker.assembly2.png)]]

 ----

 Command with items on each lines
 {{{
 ffmpeg -y -i C:\Users\hbaldzuhn\Pictures\checker.png -i
 "C:\Users\hbaldzuhn\Pictures\checker.png" -i
 "C:\Users\hbaldzuhn\Pictures\checker.png" -i
 "C:\Users\hbaldzuhn\Pictures\checker.png" -filter_complex
 "[0:v]scale=64:64[v0];[1:v]scale=64:64[v1];[2:v]scale=64:64[v2];[3:v]scale=64:64[v3];[v0][v1][v2][v3]xstack=inputs=4:fill=black:layout=64_64|64_0|320_0|128_128"
 -s 384x192 "C:\Users\hbaldzuhn\Pictures\checker.assembly3.png"
 }}}
 [[Image(checker.assembly3.png)]]

 '''Full command and log'''
 {{{
 ffmpeg.exe -y -i C:\Users\hbaldzuhn\Pictures\checker.png -i
 "C:\Users\hbaldzuhn\Pictures\checker.png" -i
 "C:\Users\hbaldzuhn\Pictures\checker.png" -filter_complex
 "[0:v]scale=64:64[v0];[1:v]scale=64:64[v1];[2:v]scale=64:64[v2];[v0][v1][v2]xstack=inputs=3:fill=black:layout=64_64|64_0|320_0"
 -s 384x192 "C:\Users\hbaldzuhn\Pictures\checker.assembly1.png"
 ffmpeg version N-109226-g2ad199ae31-20221125 Copyright (c) 2000-2022 the
 FFmpeg developers
   built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1)
   configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
 --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug
 --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2
 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp
 --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl
 --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib
 --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth
 --enable-chromaprint --enable-libdav1d --enable-libdavs2 --disable-libfdk-
 aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme
 --enable-libkvazaar --enable-libass --enable-libbluray --enable-libjxl
 --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh
 --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2
 --disable-libmfx --enable-libvpl --enable-openal --enable-libopencore-
 amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg
 --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-
 schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1
 --enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi
 --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-
 libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
 libxvid --enable-libzimg --enable-libzvbi --extra-
 cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread
 --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20221125
   libavutil      57. 43.100 / 57. 43.100
   libavcodec     59. 54.100 / 59. 54.100
   libavformat    59. 34.102 / 59. 34.102
   libavdevice    59.  8.101 / 59.  8.101
   libavfilter     8. 50.101 /  8. 50.101
   libswscale      6.  8.112 /  6.  8.112
   libswresample   4.  9.100 /  4.  9.100
   libpostproc    56.  7.100 / 56.  7.100
 Input #0, png_pipe, from 'C:\Users\hbaldzuhn\Pictures\checker.png':
   Duration: N/A, bitrate: N/A
   Stream #0:0: Video: png, rgba(pc), 240x240 [SAR 3780:3780 DAR 1:1], 25
 fps, 25 tbr, 25 tbn
 Input #1, png_pipe, from 'C:\Users\hbaldzuhn\Pictures\checker.png':
   Duration: N/A, bitrate: N/A
   Stream #1:0: Video: png, rgba(pc), 240x240 [SAR 3780:3780 DAR 1:1], 25
 fps, 25 tbr, 25 tbn
 Input #2, png_pipe, from 'C:\Users\hbaldzuhn\Pictures\checker.png':
   Duration: N/A, bitrate: N/A
   Stream #2:0: Video: png, rgba(pc), 240x240 [SAR 3780:3780 DAR 1:1], 25
 fps, 25 tbr, 25 tbn
 Stream mapping:
   Stream #0:0 (png) -> scale:default
   Stream #1:0 (png) -> scale:default
   Stream #2:0 (png) -> scale:default
   xstack:default -> Stream #0:0 (png)
 Press [q] to stop, [?] for help
 Output #0, image2, to 'C:\Users\hbaldzuhn\Pictures\checker.assembly1.png':
   Metadata:
     encoder         : Lavf59.34.102
   Stream #0:0: Video: png, rgba(pc, gbr/unknown/unknown, progressive),
 384x192 [SAR 3:2 DAR 3:1], q=2-31, 200 kb/s, 25 fps, 25 tbn
     Metadata:
       encoder         : Lavc59.54.100 png
 [image2 @ 0000026068f376c0] The specified filename
 'C:\Users\hbaldzuhn\Pictures\checker.assembly1.png' does not contain an
 image sequence pattern or a pattern is invalid.
 [image2 @ 0000026068f376c0] Use a pattern such as %03d for an image
 sequence or use the -update option (with -frames:v 1 if needed) to write a
 single image.
 frame=    1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed=
 0x
 video:3kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 }}}

 Patches should be submitted to the ffmpeg-devel mailing list and not this
 bug tracker.

--
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10073#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list