Arquivos de teste

Arquivos de teste

Exemplo de vídeo:https://youtu.be/Ib_CxhxOpxI

Estou usando o seguinte comando:

ffmpeg -i GX014186.MP4 -i GX014187.MP4 -i GX024187.MP4 -i GX034187.MP4 -i GX044187.MP4 -i GX054187.MP4 -i GX064187.MP4 -i scaled.png -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a][3:v][3:a][4:v][4:a]concat=n=5:v=1:a=1[vv][a];[vv]overlay=main_w-overlay_w-5:main_h-overlay_h-5[v]" -map "[v]" -map "[a]" output.mp4

Este comando funcionou com os vídeos anteriores. Mas os vídeos desta semana parecem mesclar todos os vídeos em um.

Isso quer dizer que você pode ver nas bordas do vídeo que todos os vídeos estão sobrepostos uns aos outros.

Parece que apenas um vídeo foi renderizado, mas na verdade todos eles foram renderizados, mas com um sistema de camadas estranho.

hutber@hutber:~/Videos$ ./concat.sh 
Please select folder:
1) mlt/       3) Week 2/   5) Week 4/   7) Week 6/   9) Week 8/
2) VLC/       4) Week 3/   6) Week 5/   8) Week 7/  10) Week 9/
#? 8
ffmpeg version N-49161-g50e194e6e1-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
  libavutil      56. 30.100 / 56. 30.100
  libavcodec     58. 53.101 / 58. 53.101
  libavformat    58. 28.101 / 58. 28.101
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 55.100 /  7. 55.100
  libswscale      5.  4.101 /  5.  4.101
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'GX014183.MP4':
  Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2016-08-25T23:17:34.000000Z
    firmware        : HD6.01.01.60.00
  Duration: 00:08:03.50, start: 0.000000, bitrate: 66226 kb/s
    Stream #0:0(eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 65937 kb/s, 239.76 fps, 239.76 tbr, 240k tbn, 239.76 tbc (default)
    Metadata:
      creation_time   : 2016-08-25T23:17:34.000000Z
      handler_name    : GoPro H.265
      encoder         : GoPro H.265 encoder
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:17:34.000000Z
      handler_name    : GoPro AAC  
    Stream #0:2(eng): Data: bin_data (gpmd / 0x646D7067), 33 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:17:34.000000Z
      handler_name    : GoPro MET  
    Stream #0:3(eng): Data: none (fdsc / 0x63736466), 36 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:17:34.000000Z
      handler_name    : GoPro SOS  
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'GX024183.MP4':
  Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2016-08-25T23:25:38.000000Z
    firmware        : HD6.01.01.60.00
  Duration: 00:08:03.48, start: 0.000000, bitrate: 66233 kb/s
    Stream #1:0(eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 65936 kb/s, 239.76 fps, 239.76 tbr, 240k tbn, 239.76 tbc (default)
    Metadata:
      creation_time   : 2016-08-25T23:25:38.000000Z
      handler_name    : GoPro H.265
      encoder         : GoPro H.265 encoder
    Stream #1:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:25:38.000000Z
      handler_name    : GoPro AAC  
    Stream #1:2(eng): Data: bin_data (gpmd / 0x646D7067), 33 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:25:38.000000Z
      handler_name    : GoPro MET  
    Stream #1:3(eng): Data: none (fdsc / 0x63736466), 36 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:25:38.000000Z
      handler_name    : GoPro SOS  
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from 'GX034183.MP4':
  Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2016-08-25T23:33:41.000000Z
    firmware        : HD6.01.01.60.00
  Duration: 00:08:03.48, start: 0.000000, bitrate: 66218 kb/s
    Stream #2:0(eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 65921 kb/s, 239.76 fps, 239.76 tbr, 240k tbn, 239.76 tbc (default)
    Metadata:
      creation_time   : 2016-08-25T23:33:41.000000Z
      handler_name    : GoPro H.265
      encoder         : GoPro H.265 encoder
    Stream #2:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:33:41.000000Z
      handler_name    : GoPro AAC  
    Stream #2:2(eng): Data: bin_data (gpmd / 0x646D7067), 33 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:33:41.000000Z
      handler_name    : GoPro MET  
    Stream #2:3(eng): Data: none (fdsc / 0x63736466), 36 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:33:41.000000Z
      handler_name    : GoPro SOS  
Input #3, mov,mp4,m4a,3gp,3g2,mj2, from 'GX044183.MP4':
  Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2016-08-25T23:41:45.000000Z
    firmware        : HD6.01.01.60.00
  Duration: 00:08:03.50, start: 0.000000, bitrate: 66220 kb/s
    Stream #3:0(eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 65926 kb/s, 239.76 fps, 239.76 tbr, 240k tbn, 239.76 tbc (default)
    Metadata:
      creation_time   : 2016-08-25T23:41:45.000000Z
      handler_name    : GoPro H.265
      encoder         : GoPro H.265 encoder
    Stream #3:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:41:45.000000Z
      handler_name    : GoPro AAC  
    Stream #3:2(eng): Data: bin_data (gpmd / 0x646D7067), 33 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:41:45.000000Z
      handler_name    : GoPro MET  
    Stream #3:3(eng): Data: none (fdsc / 0x63736466), 36 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:41:45.000000Z
      handler_name    : GoPro SOS  
Input #4, mov,mp4,m4a,3gp,3g2,mj2, from 'GX054183.MP4':
  Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2016-08-25T23:49:48.000000Z
    firmware        : HD6.01.01.60.00
  Duration: 00:08:03.48, start: 0.000000, bitrate: 66199 kb/s
    Stream #4:0(eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 65902 kb/s, 239.76 fps, 239.76 tbr, 240k tbn, 239.76 tbc (default)
    Metadata:
      creation_time   : 2016-08-25T23:49:48.000000Z
      handler_name    : GoPro H.265
      encoder         : GoPro H.265 encoder
    Stream #4:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:49:48.000000Z
      handler_name    : GoPro AAC  
    Stream #4:2(eng): Data: bin_data (gpmd / 0x646D7067), 33 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:49:48.000000Z
      handler_name    : GoPro MET  
    Stream #4:3(eng): Data: none (fdsc / 0x63736466), 36 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:49:48.000000Z
      handler_name    : GoPro SOS  
Input #5, mov,mp4,m4a,3gp,3g2,mj2, from 'GX064183.MP4':
  Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2016-08-25T23:57:52.000000Z
    firmware        : HD6.01.01.60.00
  Duration: 00:05:28.77, start: 0.000000, bitrate: 64980 kb/s
    Stream #5:0(eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 64684 kb/s, 239.76 fps, 239.76 tbr, 240k tbn, 239.76 tbc (default)
    Metadata:
      creation_time   : 2016-08-25T23:57:52.000000Z
      handler_name    : GoPro H.265
      encoder         : GoPro H.265 encoder
    Stream #5:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:57:52.000000Z
      handler_name    : GoPro AAC  
    Stream #5:2(eng): Data: bin_data (gpmd / 0x646D7067), 33 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:57:52.000000Z
      handler_name    : GoPro MET  
    Stream #5:3(eng): Data: none (fdsc / 0x63736466), 36 kb/s (default)
    Metadata:
      creation_time   : 2016-08-25T23:57:52.000000Z
      handler_name    : GoPro SOS  
Input #6, png_pipe, from '/home/hutber/Videos/scaled.png':
  Duration: N/A, bitrate: N/A
    Stream #6:0: Video: png, rgba(pc), 320x327 [SAR 2943:2944 DAR 45:46], 25 tbr, 25 tbn, 25 tbc
File '../Week_7_merged.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
  Stream #0:0 (hevc) -> concat:in0:v0
  Stream #0:1 (aac) -> concat:in0:a0
  Stream #1:0 (hevc) -> concat:in1:v0
  Stream #1:1 (aac) -> concat:in1:a0
  Stream #2:0 (hevc) -> concat:in2:v0
  Stream #2:1 (aac) -> concat:in2:a0
  Stream #3:0 (hevc) -> concat:in3:v0
  Stream #3:1 (aac) -> concat:in3:a0
  Stream #4:0 (hevc) -> concat:in4:v0
  Stream #4:1 (aac) -> concat:in4:a0
  Stream #5:0 (hevc) -> overlay:overlay
  overlay -> Stream #0:0 (libx264)
  concat:out:a0 -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[swscaler @ 0xd7aaec0] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x7584640] using SAR=1/1
[libx264 @ 0x7584640] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7584640] profile Progressive High, level 5.2, 4:2:0, 8-bit
[libx264 @ 0x7584640] 264 - core 157 r2969 d4099dd - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=18 lookahead_threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '../Week_7_merged.mp4':
  Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    firmware        : HD6.01.01.60.00
    encoder         : Lavf58.28.101
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuvj420p(pc, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 239.76 fps, 240k tbn, 239.76 tbc (default)
    Metadata:
      encoder         : Lavc58.53.101 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      encoder         : Lavc58.53.101 aac
[hevc @ 0x78f7dc0] Could not find ref with POC 100:00:10.79 bitrate=27198.8kbits/s speed=0.333x    
frame=579608 fps=143 q=-1.0 Lsize= 1505572kB time=00:40:17.45 bitrate=5101.9kbits/s dup=46 drop=18 speed=0.597x    
video:1459191kB audio:37970kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.561760%
[libx264 @ 0x7584640] frame I:2334  Avg QP:17.89  size:171199
[libx264 @ 0x7584640] frame P:147051 Avg QP:22.49  size:  5517
[libx264 @ 0x7584640] frame B:430223 Avg QP:25.37  size:   659
[libx264 @ 0x7584640] consecutive B-frames:  0.9%  0.2%  0.2% 98.7%
[libx264 @ 0x7584640] mb I  I16..4:  8.8% 63.2% 28.0%
[libx264 @ 0x7584640] mb P  I16..4:  0.3%  0.4%  0.1%  P16..4:  5.3%  1.4%  1.2%  0.0%  0.0%    skip:91.4%
[libx264 @ 0x7584640] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  3.3%  0.2%  0.1%  direct: 0.1%  skip:96.3%  L0:39.5% L1:56.3% BI: 4.1%
[libx264 @ 0x7584640] 8x8 transform intra:60.0% inter:68.4%
[libx264 @ 0x7584640] coded y,uvDC,uvAC intra: 55.6% 57.8% 29.1% inter: 1.1% 0.7% 0.0%
[libx264 @ 0x7584640] i16 v,h,dc,p: 20% 18%  8% 54%
[libx264 @ 0x7584640] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 13% 21%  7%  7%  8%  6%  7%  7%
[libx264 @ 0x7584640] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 18% 10%  8% 14%  9%  6%  5% 10%
[libx264 @ 0x7584640] i8c dc,h,v,p: 58% 18% 17%  7%
[libx264 @ 0x7584640] Weighted P-Frames: Y:0.4% UV:0.2%
[libx264 @ 0x7584640] ref P L0: 67.6% 12.8% 14.9%  4.6%  0.1%
[libx264 @ 0x7584640] ref B L0: 89.5%  9.0%  1.5%
[libx264 @ 0x7584640] ref B L1: 96.1%  3.9%
[libx264 @ 0x7584640] kb/s:4944.75
[aac @ 0x78a6ec0] Qavg: 180.332

Arquivos de teste

https://drive.google.com/drive/folders/187EjGlksHrHo7xBGdbArFEivD4wsqKXt?usp=sharing

#!/bin/bash

checkFolders(){    
    printf "Please select folder:\n"
    select d in */; do test -n "$d" && break; echo ">>> Invalid Selection"; done
}

checkFolders

cd "$d"

filesList=""
for file in $(ls -1v *.MP4);do 
    filesList="${filesList} -i ${file}"
done

videoName="${d/ /_}"

#ffmpeg $filesList -i /home/hutber/Videos/scaled.png -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a][3:v][3:a][4:v][4:a]concat=n=5:v=1:a=1[vv][a];[vv]overlay=main_w-overlay_w-5:main_h-overlay_h-5[v]" -map "[v]" -map "[a]" ../${videoName%/}_merged.mp4
ffmpeg $filesList -i /home/hutber/Videos/scaled.png -bsf:v h264_mp4toannexb -reset_timestamps 1 -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a][3:v][3:a][4:v][4:a]concat=n=5:v=1:a=1[vv][a];[vv]overlay=main_w-overlay_w-5:main_h-overlay_h-5[v]" -map "[v]" -map "[a]" ../${videoName%/}_merged.mp4

Responder1

O problema com este comando é o uso incorreto do filtro de sobreposição que requer 2 fluxos de vídeo de entrada. O OP tinha apenas um e o segundo, o que fazia com que os vídeos fossem sobrepostos um sobre o outro em vez de um arquivo png. Além disso, a lista de entradas de vídeo não estava completa.

Portanto, o comando correto neste caso deve ser

ffmpeg -i GX014186.MP4 -i GX014187.MP4 -i GX024187.MP4 -i GX034187.MP4 -i GX044187.MP4 -i GX054187.MP4 -i GX064187.MP4 -i scaled.png -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a][3:v][3:a][4:v][4:a][5:v][5:a][6:v][6:a]concat=n=7:v=1:a=1[vv][a];[vv][7:v]overlay=main_w-overlay_w-5:main_h-overlay_h-5[v]" -map "[v]" -map "[a]" output.mp4 `

informação relacionada