У меня есть видеозахваты без потерь с видеокассет, которые я собираюсь конвертировать в FFV1 и FLAC. Для нескольких избранных кассет в процессе мне также нужно конвертировать аудио в моно (существует только левая дорожка, так как исходная запись моно, но устройство захвата всегда записывает в стерео)иМне нужно нормализовать звук таким образом, чтобы громкость была просто равномерной (никакой компрессии или чего-либо еще, что могло бы исказить звук сверх необходимого), поскольку видеокамера довольно тихая, а возможности отрегулировать уровни звука на устройствах захвата нет.
На данный момент я определил, что мне нужны следующие два фильтра:
Удалите правый канал, чтобы создать монозапись только с левой дорожкой:
-filter_complex "[0:a]channelsplit=channel_layout=stereo:channels=FL[left]" -map "[left]"
Нормализовать звук:
-af loudnorm=I=-16:LRA=11:TP=-1.5
Однако я не могу определить, как объединить эти два фильтра. Я пробовал:
ffmpeg -i "input.avi" -filter_complex "[0:a]channelsplit=channel_layout=stereo:channels=FL[left]" -map "[left]", loudnorm=I=-16:LRA=11:TP=-1.5" -c:v ffv1 -level 3 -slicecrc 1 -c:a flac -compression_level 12 "output.mkv"
который дает:
loudnorm=I=-16:LRA=11:TP=-1.5 -c:v ffv1 -level 3 -slicecrc 1 -c:a flac -compression_level 12 output.mkv: Invalid argument
Как объединить эти два фильтра?
решение1
При объединении простых фильтров (один вход и один выход) мы можем просто использовать запятую ( ,
) между соединенными в цепочку фильтрами.
Синтаксис с запятой означает, что выходные данные первого фильтра являются входными данными следующего фильтра:"[0:a]channelsplit=channel_layout=stereo:channels=FL,loudnorm=I=-16:LRA=11:TP=-1.5[left]"
Нам также необходимо сопоставить видео с помощью -map 0:v
.
Полная командная строка:
ffmpeg -i input.avi -filter_complex "[0:a]channelsplit=channel_layout=stereo:channels=FL,loudnorm=I=-16:LRA=11:TP=-1.5[left]" -map "[left]" -map 0:v -c:v ffv1 -coder 1 -context 1 -g 1 -slices 24 -slicecrc 1 -c:a flac -compression_level 12 output.mkv
Примечание: мой ответ касается правильности синтаксиса, а не правильности аудиофильтров и параметров (мои познания в области аудио весьма ограничены).