Наведені нижче фільтри не можуть вибрати формат:


3

Я змішав у вирівнюванні гучності в моєму amerge команду.

ffmpeg -i adele.mp3 -i ruby.mp4 -filter_complex \
"[0:a]aformat=sample_fmts=s16:channel_layouts=stereo,volume=0.390625[a1];
 [1:a]aformat=sample_fmts=s16:channel_layouts=stereo,aresample=44100,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

Але є помилка, тому вона не може бути створена.

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_6 @ 0x7fc8a1c0d360] This syntax is deprecated. Use '|' to separate the list items.
File 'output.mp4' already exists. Overwrite ? [y/N] y
[Parsed_amerge_5 @ 0x7fc8a1c36f60] No channel layout for input 1
    Last message repeated 1 times
[AVFilterGraph @ 0x7fc8a1e00ae0] The following filters could not choose their formats: Parsed_amerge_5
Consider inserting the (a)format filter near their input or output.

Я дотримувався правил, зокрема, обидва входи повинні мати однаковий формат і більше.

Я також не знайомий з повідомленням про помилку bec. це мій перший час, щоб зустріти його.

Відповіді:


2

Очевидно це pickier ніж я подумав, таким чином я був більше явний з aformat аудіофільтр цього разу. Це має працювати для вас, але я не перевіряв його широко:

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

Продовжено з: Спростити FFmpeg amerge і volume налаштування .


1

Для того, щоб додати ще один приклад, ось як я застосував aformat щоб підключити amerge с volume фільтри, які, очевидно, не оголошують розкладку вихідного потоку каналу досить рано amerge щоб з'ясувати, що робити.

Мета команди полягає в тому, щоб створити простий файл тестування лівого / правого / обох стереодинаміків. Він кодується як MP3, використовуючи LAME на найнижчій якості VBR.

Команда була відредагована для зручності читання; обов'язково додайте \ або ^ для продовження лінії відповідно до вимог вашого CLI.

ffmpeg -v debug -i mikro128.mp3
 -filter_complex
 "[0:a] channelsplit [l] [r];
  [l]volume='if(between(t,1,2),0.1, 1)':eval=frame [l2];
  [r]volume='if(     gt(t,1),  1, 0.1)':eval=frame [r2];
  [l2] aformat=sample_fmts=s16p:sample_rates=44100:channel_layouts=mono [l3];
  [r2] aformat=sample_fmts=s16p:sample_rates=44100:channel_layouts=mono [r3];
  [l3][r3] amerge=inputs=2,pan=stereo|c0=FL|c1=FR [out]"
 -map "[out]"
 -c:a libmp3lame -q:a 9 "links, rechts, beide.mp3"

The amerge / pan частина може бути спрощена в цьому випадку:

  [l3][r3] amerge [out]"

До речі, я знаходжу FFmpeg -v debug Висновок дійсно корисний для кінцевого користувача для того, щоб з'ясувати, що відбувається, зважаючи на те, що користувач FFmpeg зазвичай є технічним хлопцем.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.