Vereinfachen Sie die Anpassung von FFmpeg Amerika und Volumen

9

Ich habe 3 aufeinanderfolgende FFmpeg-Befehle, mit denen Sie die Lautstärke eines Audios anpassen, die Lautstärke eines Videos anpassen und amerge Audio und Video zu einem endgültigen Ausgang.

Erster Befehl, bearbeiten Sie den Lautstärkepegel einer MP3-Datei

  ffmpeg -i music.mp3 -vol 100 music2.mp3

Zweiter Befehl, bearbeiten Sie den Lautstärkepegel einer mp4-Datei

ffmpeg -i video.mp4 -vol 200 video2.mp4

Dritter Befehl, zusammenführen music2.mp3 und video2.mp4

ffmpeg -i music2.mp3 -i ruby.mp4 -filter_complex \
    "[0:a][1:a]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]" \
    -map 1:v -map "[out]" -c:v copy -c:a libfdk_aac -shortest video2.mp4

Gibt es eine einfache Möglichkeit, Prozesse zu vereinfachen und in nur einen Prozess / Befehl zu unterteilen?

Ich habe es versucht, aber es funktioniert nicht:

ffmpeg -i music.mp3 -vol 100 -i video.mp4 -vol 200 -filter_complex \
    "[0:a][1:a]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]" \
    -map 1:v -map "[out]" -c:v copy -c:a libfdk_aac -shortest output.mp4

Fehlerprotokoll (e):

    ffmpeg version N-60332-ga0d5204 Copyright (c) 2000-2014 the FFmpeg developers
  built on Feb  4 2014 21:31:51 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
  configuration: --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid
  libavutil      52. 63.100 / 52. 63.100
  libavcodec     55. 49.101 / 55. 49.101
  libavformat    55. 29.101 / 55. 29.101
  libavdevice    55.  7.100 / 55.  7.100
  libavfilter     4.  1.102 /  4.  1.102
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mp3, from 'adele.mp3':
  Metadata:
    title           : Chasing Pavements
    artist          : Adele
    track           : 3
    album           : 19 (Deluxe Edition)
    date            : 2008
  Duration: 00:03:30.55, start: 0.025056, bitrate: 160 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 159 kb/s
    Stream #0:1: Video: mjpeg, yuvj420p(pc), 600x600 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
    Metadata:
      title           : 
      comment         : Other
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'Ruby on Rails 101- What is Ruby on Rails_.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2013-12-21 07:56:20
  Duration: 00:05:42.40, start: 0.000000, bitrate: 1214 kb/s
    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 1020 kb/s, 30 fps, 30 tbr, 60 tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #1:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 191 kb/s (default)
    Metadata:
      creation_time   : 2013-12-21 07:56:23
      handler_name    : IsoMedia File Produced by Google, 5-11-2011
[Parsed_pan_1 @ 0x7fcd23d00680] This syntax is deprecated. Use '|' to separate the list items.
-vol has been deprecated. Use the volume audio filter instead.
-vol is forwarded to lavfi similarly to -af volume=0.781250.
-vol has been deprecated. Use the volume audio filter instead.
-vol is forwarded to lavfi similarly to -af volume=0.781250.
File 'output.mp4' already exists. Overwrite ? [y/N] y
[Parsed_amerge_0 @ 0x7fcd23d00000] No channel layout for input 1
    Last message repeated 1 times
[AVFilterGraph @ 0x7fcd23c0f5a0] The following filters could not choose their formats: Parsed_amerge_0
Consider inserting the (a)format filter near their input or output.
emfolorncynosure
quelle
Geben Sie stattdessen die vollständige ungeschnittene Befehlszeilenausgabe an, nicht nur die Teile, die Sie für relevant halten. Vielen Dank.
slhck
Du hast meinen Beitrag bearbeitet.
emfolorncynosure

Antworten:

13

Ein Befehl, um sie zu binden

Sie können dies in einem Befehl mit der volume Audiofilter anstelle des alten -vol Option (wie von Ihrer Konsolenausgabe erwähnt):

ffmpeg -i music.mp3 -i videowithaudio.mp4 -filter_complex \
"[0:a]volume=0.390625[a1];[1:a]volume=0.781250[a2]; \
 [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]" \
-map 1:v -map "[out]" -c:v copy -c:a libfdk_aac -shortest output.mp4

Möglicherweise müssen Sie die Werte für anpassen volume.


Potenzielle Probleme

Die Syntax ist veraltet

[Parsed_pan_4 @ 0x244c980] This syntax is deprecated. Use '|' to separate the list items.

Machen Sie sich keine Sorgen - Sie können diese Nachricht ignorieren.

konnte ihre Formate nicht wählen

[AVFilterGraph @ 0x26549a0] The following filters could not choose their formats: Parsed_amerge_3
Consider inserting the (a)format filter near their input or output.

Alle Eingänge müssen dieselbe Abtastrate und dasselbe Format haben amerge. Wenn sie unterschiedlich sind, müssen Sie das verwenden aformat Audiofilter:

ffmpeg -i music.mp3 -i videowithaudio.mp4 -filter_complex \
"[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1]; \
 [1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.8[a2]; \
 [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]" \
-map 1:v -map "[out]" -c:v copy -c:a libfdk_aac -shortest output.mp4
llogan
quelle
1
Hallo @LordNeckbeard, heißt es immer noch [AVFilterGraph @ 0x7f951b42a080] The following filters could not choose their formats: Parsed_amerge_5 Consider inserting the (a)format filter near their input or output. selbst wenn ich es benutzt habe aformat Probe.
emfolorncynosure
Ich habe den gleichen Anwendungsfall und bekomme die Fehlermeldung "Kein Kanallayout für Eingang 1"
Lukasz Madon
@lukas Kannst du dein zeigen? ffmpeg Befehl und vollständige Konsolenausgabe? Sie können einen Pastebin-Dienst verwenden und den Link bereitstellen.
llogan
@LordNeckbeard gist.github.com/lukasz-madon/508d76d6fd5ff3635494 mit demselben Befehl beschwert er sich über libfdk_aac
Lukasz Madon
@lukas Kannst du herunterladen und einen aktuelleren Build testen? Ihre Version ist veraltet.
llogan