В частности, существует ли ситуация, когда в сложных фильтрах необходимо использовать разделенный фильтр, а не использовать один и тот же ввод несколько раз?
Например, рассмотрим следующую команду FFmpeg:
ffmpeg -i input.mp4 -filter_complex \
"[0:v]hflip[out1]; \
[0:v]boxblur=10[blurred]; \
[out1][blurred]hstack[out]" \
-map "[out]" output.mp4
Кажется, это работает отлично. Но я видел, что в некоторых учебниках постоянно используется «разделение» в подобных ситуациях, когда входные данные разделяются до применения каких-либо других фильтров, что заставляет меня задаться вопросом, есть ли непредвиденные последствия при использовании таких входных данных напрямую, я пытался найти фильтры, которые могут изменить ввод или проблемы с оптимизацией, но не нашел никакой разницы. Итак, возникает вопрос: какова цель «раскола»? и когда мне следует его использовать?





split необходим, когда кто-то хочет повторно использовать уже отфильтрованный поток несколько раз, например.
это невозможно сделать
[0:v]hflip[flipped];
[flipped]scale=1920x1080[fhd];
[flipped]scale=640x260[sd];
вместо,
[0:v]hflip,split=2[flipped1][flipped2];
[flipped1]scale=1920x1080[fhd];
[flipped2]scale=640x260[sd];
Если вы передаете необработанные данные (например, 0:v, 1:a:2), на которые можно ссылаться несколько раз без разделения.
Имеет смысл, спасибо. Это предостережение не было очевидным при чтении документации.
Поскольку, как написано, речь не идет о программировании, вы с большей вероятностью получите ответ (как предложено в справке по тегу ffmpeg ) в Видеопроизводстве или Суперпользователе. Однако перед публикацией обязательно найдите существующие похожие вопросы и проверьте их справку. Спасибо!