2

Я пытаюсь смешать все звуковые дорожки из видеофайла с несколькими звуковыми дорожками. Я сделал это успешно, но заметил, что первый громкий, второй нормальный, а третий низкий. Я хотел бы нормализовать или (лучше), чтобы установить громкость вручную.

Вот то, что я пробовал, но это не работает (сообщение об ошибке разбора), поэтому я предполагаю, что я не использую это хорошим способом.

$ ffmpeg -i INPUT -c:v libx264 -preset slow -crf 23 -filter_complex "[0:1]volume=0.3;[0:2]volume=0.5;[0:3]volume=0.7 amerge=inputs=3" -c:a libmp3lame OUTPUT

ffmpeg version 2.2.git Copyright (c) 2000-2014 the FFmpeg developers
  built on Jun 13 2014 10:28:46 with gcc 4.8.3 (GCC)
  configuration: --extra-ldflags=-L/usr/local/x86_64-w64-mingw32/lib --prefix=/u
sr/local/x86_64-w64-mingw32 --cross-prefix=x86_64-w64-mingw32- --target-os=mingw
32 --enable-w32threads --enable-memalign-hack --arch=x86_64 --enable-runtime-cpu
detect --disable-debug --enable-static --disable-shared --disable-ffplay --disab
le-ffserver --enable-gpl --enable-version3 --enable-nonfree --enable-libmp3lame
--enable-libfdk-aac --enable-libx264
  libavutil      52. 89.100 / 52. 89.100
  libavcodec     55. 66.100 / 55. 66.100
  libavformat    55. 43.100 / 55. 43.100
  libavdevice    55. 13.101 / 55. 13.101
  libavfilter     4.  8.100 /  4.  8.100
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100
[avi @ 000000000357fee0] non-interleaved AVI
Guessed Channel Layout for  Input Stream #0.1 : stereo
Guessed Channel Layout for  Input Stream #0.2 : stereo
Guessed Channel Layout for  Input Stream #0.3 : stereo
Input #0, avi, from 'hl2 2014-06-14 23-46-14-775.avi':
  Metadata:
    encoder         : DxtoryCore ver2.0.0.114
    ISRC            : Video:Lagarith Lossless Codec Audio0:Line 1 (Virtual Audio
 Cable) Audio1:Line 2 (Virtual Audio Cable) Audio2:Microphone (2- PÚriphÚrique H
igh Definition Audio)
  Duration: 01:04:49.17, start: 0.000000, bitrate: 168913 kb/s
    Stream #0:0: Video: lagarith (LAGS / 0x5347414C), yuv420p, 1920x1080, 164302
 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc
    Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 2 channels,
 s16, 1536 kb/s
    Stream #0:2: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 2 channels,
 s16, 1536 kb/s
    Stream #0:3: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 2 channels,
 s16, 1536 kb/s
Cannot find a matching stream for unlabeled input pad 0 on filter Parsed_amerge_
3
Appuyez sur une touche pour continuer...

Любая помощь приветствуется.

1 ответ1

3
ffmpeg -i input -filter_complex \
"[0:a:0]volume=0.3:precision=fixed[a0]; \
 [0:a:1]volume=0.5:precision=fixed[a1]; \
 [0:a:2]volume=0.7:precision=fixed[a2]; \
 [a0][a1][a2]amerge=inputs=3,pan=stereo:FL<c0+c2+c4:FR<c1+c3+c5[a]" \
-map 0:v -map "[a]" -c:v libx264 -preset slow -crf 23 output.mp4

Шаги фильтрации:

  1. Отрегулируйте volume вручную. Я просто скопировал ваши ценности. Опция precision определяет, какие форматы входных выборок будут разрешены, а fixed - для форматов входных выборок U8, S16 (например, ваши входные данные) и S32. В качестве альтернативы, перед volume вы можете использовать aformat как показано в этом ответе, чтобы использовать точность float объема по умолчанию.

  2. Объединить в 6-канальный поток с помощью amerge.

  3. Downmix 6 каналов в стерео с pan. Я не проверял правильность порядка входного канала (c0 , c1 , c2 и т.д.).

Заметки:

  • Вы можете попробовать опустить volume чтобы увидеть, обеспечивает ли pan удовлетворительный вывод.
  • Вы можете попробовать использовать -ac 2 в качестве опции вывода вместо сложного фильтра pan .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .