1 votes

Comment superposer plusieurs fichiers vidéo et fusionner tout l'audio avec ffmpeg?

Je superpose de 2 à 5 fichiers vidéo dans une grille et je veux fusionner tous les sons de chaque vidéo. Voici mon code pour combiner 3 fichiers vidéo. Je pense que cela fonctionne, mais je reçois un avertissement que je n'aime pas.

C:\ffmpeg.exe -i C:\Wildlife2.mp4 -i C:\Wildlife3.mp4 -i C:\Wildlife4.mp4 -qscale:v 5  -filter_complex "[0:v]setpts=PTS-STARTPTS,pad=iw:1.5*ih[a]; [1:v]setpts=PTS-STARTPTS,scale=-1:ih/2[b]; [2:v]setpts=PTS-STARTPTS,scale=-1:ih/2[c]; [a][b]overlay=0:h*2[x]; [x][c]overlay=w:h*2; [0:a][1:a][2:a] amerge=inputs=3" grid(3)_2015-08-14.avi

Voici la sortie.

ffmpeg version N-71544-g82d9c4e Copyright (c) 2000-2015 the FFmpeg developers
  construit avec gcc 4.9.2 (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-lzma --ena
ble-decklink --enable-zlib
  libavutil      54. 23.100 / 54. 23.100
  libavcodec     56. 35.100 / 56. 35.100
  libavformat    56. 30.100 / 56. 30.100
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 14.100 /  5. 14.100
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Entrée #0, mov,mp4,m4a,3gp,3g2,mj2, depuis 'C:\Users\Admin\Desktop\Wildlife2.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2015-04-20 03:01:47
  Durée: 00:00:04.04, début: 0.000000, débit: 2103 kb/s
    Stream #0:0(eng): Video: mpeg4 (Advanced Simple Profile) (mp4v / 0x7634706D)
, yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1908 kb/s, 29.97 fps, 29.97 tbr, 29970 t
bn, 29.97 tbc (default)
    Metadata:
      creation_time   : 2015-04-20 03:01:47
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, flt
p, 189 kb/s (default)
    Metadata:
      creation_time   : 2015-04-20 03:01:47
Entrée #1, mov,mp4,m4a,3gp,3g2,mj2, depuis 'C:\Users\Admin\Desktop\Wildlife3.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2015-04-20 03:03:38
  Durée: 00:00:04.04, début: 0.000000, débit: 1835 kb/s
    Stream #1:0(eng): Video: mpeg4 (Advanced Simple Profile) (mp4v / 0x7634706D)
, yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1642 kb/s, 29.97 fps, 29.97 tbr, 29970 t
bn, 29.97 tbc (default)
    Metadata:
      creation_time   : 2015-04-20 03:03:38
    Stream #1:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, flt
p, 187 kb/s (default)
    Metadata:
      creation_time   : 2015-04-20 03:03:38
Entrée #2, mov,mp4,m4a,3gp,3g2,mj2, depuis 'C:\Users\Admin\Desktop\Wildlife4.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2015-04-20 03:05:05
  Durée: 00:00:04.00, début: 0.000000, débit: 2172 kb/s
    Stream #2:0(eng): Video: mpeg4 (Advanced Simple Profile) (mp4v / 0x7634706D)
, yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1977 kb/s, 29.97 fps, 29.97 tbr, 29970 t
bn, 29.97 tbc (default)
    Metadata:
      creation_time   : 2015-04-20 03:05:05
    Stream #2:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, flt
p, 188 kb/s (default)
    Metadata:
      creation_time   : 2015-04-20 03:05:05
[Parsed_amerge_8 @ 0000000004dac960] Pas de disposition de canal pour l'entrée 1
[Parsed_amerge_8 @ 0000000004dac960] Les dispositions de canaux en entrée se chevauchent : la disposition de sortie sera déterminée par le nombre de canaux distincts en entrée
Sortie #0, avi, vers 'grid(3)_2015-08-14.avi':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    ISFT            : Lavf56.30.100
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1280x1080 [SAR 1:1 D
AR 32:27], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
    Metadata:
      encoder         : Lavc56.35.100 mpeg4
    Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 48000 Hz, stereo
, s16p (default)
    Metadata:
      encoder         : Lavc56.35.100 libmp3lame
Diaporama des flux:
  Stream #0:0 (mpeg4) -> setpts
  Stream #0:1 (aac) -> amerge:in0
  Stream #1:0 (mpeg4) -> setpts
  Stream #1:1 (aac) -> amerge:in1
  Stream #2:0 (mpeg4) -> setpts
  Stream #2:1 (aac) -> amerge:in2
  overlay -> Stream #0:0 (mpeg4)
  amerge -> Stream #0:1 (libmp3lame)
Appuyez sur [q] pour arrêter, [?] pour l'aide
frame=   23 fps=0.0 q=5.0 size=     876kB time=00:00:00.76 bitrate=9351.3kbits/s
frame=   46 fps= 46 q=5.0 size=    1927kB time=00:00:01.53 bitrate=10282.5kbits/
frame=   65 fps= 43 q=5.0 size=    2816kB time=00:00:02.16 bitrate=10635.2kbits/
frame=   89 fps= 44 q=5.0 size=    3736kB time=00:00:02.96 bitrate=10306.3kbits/
frame=  114 fps= 45 q=5.0 size=    4272kB time=00:00:03.80 bitrate=9200.7kbits/s
frame=  121 fps= 45 q=5.0 Lsize=    4494kB time=00:00:04.03 bitrate=9118.7kbits/
s
video:4416ko audio:62ko subtitle:0ko autres flux:0ko en-têtes globaux:0ko sur 0ko de sauvegarde : 0.368438%

Voici l'avertissement ci-dessus.

[Parsed_amerge_8 @ 0000000004dac960] Pas de disposition de canal pour l'entrée 1
[Parsed_amerge_8 @ 0000000004dac960] Les dispositions de canaux en entrée se chevauchent : la disposition de sortie sera déterminée par le nombre de canaux distincts en entrée

Pouvez-vous m'aider à corriger mon code pour fusionner les trois flux audio ?

0voto

drolex Points 111

Je n'ai pas réussi à trouver un moyen de le faire avec les filtres amgerge ou pan, mais amix fonctionne. J'ai mis en gras la nouvelle partie de la commande ci-dessous.

C:\ffmpeg.exe -i C:\Wildlife2.mp4 -i C:\Wildlife3.mp4 -i C:\Wildlife4.mp4 -qscale:v 5 -filter_complex "[0:v]setpts=PTS-STARTPTS, pad=iw:1.5*ih[a]; [1:v]setpts=PTS-STARTPTS, scale=-1:ih/2[b]; [2:v]setpts=PTS-STARTPTS, scale=-1:ih/2[c]; [a][b]overlay=0:h*2[x]; [x][c]overlay=w:h*2; amix = entrées = 3: durée = la plus longue: transition_drop = 1 [aa], [aa]volume = 2 [ab] "-map [ab] grid(3)_2015-08-14.avi

Cela combinera automatiquement l'audio des 3 vidéos en un canal mono. S'il y avait plus de vidéos, je pourrais augmenter le nombre d'entrées pour correspondre ou le diminuer si je ne veux pas tous les canaux audio. Si je veux sélectionner certains canaux, je peux les spécifier comme ci-dessous où le premier nombre entre crochets est l'entrée vidéo et le second est 1 pour le canal audio.

[0:1][1:1][2:1] amix=entrées=3:duration=longue:transition_drop=1[aa], [aa]volume=2[ab]" -map [ab]

J’inclue également volume=2 pour augmenter le volume, car amix le diminue en dessous de celui d'une seule entrée vidéo.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X