[FFmpeg-user] FFmpeg is adding black borders when scaling to overlay PNG.

MikoĊ‚aj Henklewski m.henklewski at merixstudio.com
Wed Mar 24 11:28:32 EET 2021


Hi,

I have a few PNG files that I want to add to video, but on final video
after scaling them they have unnecessary outlines.. Question how to remove
it?
my ffmpeg command is:

ffmpeg -i 3d9678e2e58c4d08a24363468d0cfd3e.mp4 -i
caption-1616544596077.png -i caption-1616544596080.png -filter_complex
[1:v]rotate=6.178465552059927:c=none:ow=rotw(6.178465552059927):oh=roth(6.178465552059927)[1_rot];
[1_rot]scale=iw/2:ih/2[1_rot_scale];
[0:v][1_rot_scale]overlay=x=288:y=50:enable='between(t,0,3.2)':format=auto[1_out];
[2:v]rotate=0.0:c=none:ow=rotw(0.0):oh=roth(0.0)[2_rot];[2_rot]scale=iw/2:ih/2[2_rot_scale];
[1_out[2_rot_scale]overlay=x=589:y=71:enable='between(t,0,3.2)':format=auto"
-preset ultrafast -crf 23 out.mp4



log from ffmpeg:

ffmpeg version 4.3.2 Copyright (c) 2000-2021 the FFmpeg developers
  built with Apple clang version 12.0.0 (clang-1200.0.32.29)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.2_1 --enable-shared
--enable-pthreads --enable-version3 --enable-avresample --cc=clang
--host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl
--enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame
--enable-libopus --enable-librav1e --enable-librubberband
--enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora
--enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp
--enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid
--enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r
--enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr
--enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack
--enable-videotoolbox
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
'3d9678e2e58c4d08a24363468d0cfd3e.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.77.100
  Duration: 00:00:03.72, start: 0.000000, bitrate: 2333 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 /
0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2331 kb/s, 25 fps, 25
tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
Input #1, png_pipe, from 'caption-1616544596077-d.png':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Video: png, rgba(pc), 1382x884, 25 tbr, 25 tbn, 25 tbc
Input #2, png_pipe, from 'caption-1616544596080-d.png':
  Duration: N/A, bitrate: N/A
    Stream #2:0: Video: png, rgba(pc), 612x612, 25 tbr, 25 tbn, 25 tbc
File 'out.mp4' already exists. Overwrite? [y/N] y
Stream mapping:
  Stream #0:0 (h264) -> overlay:main
  Stream #1:0 (png) -> rotate
  Stream #2:0 (png) -> rotate
  overlay -> Stream #0:0 (libx264)
Press [q] to stop, [?] for help
[libx264 @ 0x7f8999025c00] using SAR=1/1
[libx264 @ 0x7f8999025c00] using cpu capabilities: MMX2 SSE2Fast SSSE3
SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7f8999025c00] profile High 4:4:4 Predictive, level 3.1, 4:4:4,
8-bit
[libx264 @ 0x7f8999025c00] 264 - core 161 r3048 b86ae3c - H.264/MPEG-4 AVC
codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options:
cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1
psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0
cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=6 threads=18
lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250
keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0
qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
Output #0, mp4, to 'out.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.45.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv444p,
1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc (default)
    Metadata:
      encoder         : Lavc58.91.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame=   93 fps=0.0 q=-1.0 Lsize=     967kB time=00:00:03.68
bitrate=2152.5kbits/s speed=8.66x
video:966kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.122451%
[libx264 @ 0x7f8999025c00] frame I:1     Avg QP:20.00  size: 85204
[libx264 @ 0x7f8999025c00] frame P:92    Avg QP:18.23  size:  9817
[libx264 @ 0x7f8999025c00] mb I  I16..4: 100.0%  0.0%  0.0%
[libx264 @ 0x7f8999025c00] mb P  I16..4:  1.7%  0.0%  0.0%  P16..4: 19.9%
 0.0%  0.0%  0.0%  0.0%    skip:78.4%
[libx264 @ 0x7f8999025c00] coded y,u,v intra: 33.6% 3.0% 4.9% inter: 8.6%
0.9% 0.8%
[libx264 @ 0x7f8999025c00] i16 v,h,dc,p: 30% 33% 18% 18%
[libx264 @ 0x7f8999025c00] kb/s:2125.53
I also attach input files, and output files for you to be sure, those input
files are fine. (
https://drive.google.com/drive/folders/1MeOR7uXRGo4k6hppie65jfbNwh5Tzf_Z?usp=sharing
)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screenshot 2021-03-24 at 01.35.18.png
Type: image/png
Size: 291290 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-user/attachments/20210324/9ce659d4/attachment.png>


More information about the ffmpeg-user mailing list