Как мне перевернуть только часть видео с помощью ffmpeg?
Здесь -filter_complex ваш друг, так как он может создавать цепочки отфильтрованного ввода. Мы все еще будем использовать фильтр hflip упомянутый в вопросе на фильтре.
Вы можете обратиться к подразделу так:
ffmpeg -i input.mp4 -filter_complex "[0:v]trim=start=0:duration=90[a];\
[0:v]trim=start=90:duration=30,setpts=PTS-STARTPTS[b];\
[b]hflip[c];\
[a][c]concat[d];\
[0:v]trim=start=120:duration=60,setpts=PTS-STARTPTS[e];\
[d][e]concat[out1]" -map [out1] flip.mp4
Одна строка для легкого копирования + вставки:
ffmpeg  -i input.mp4 -filter_complex "[0:v]trim=start=0:duration=90[a];[0:v]trim=start=90:duration=30,setpts=PTS-STARTPTS[b];[b]hflip[c];[a][c]concat[d];[0:v]trim=start=120:duration=60,setpts=PTS-STARTPTS[e];[d][e]concat[out1]" -map [out1] flip.mp4
Объяснение:
Использование filtergraph немного похоже на создание цепочки действий, и есть хорошее визуальное объяснение 1 этого в разделе «Введение в фильтрацию» документации по фильтрам. Фильтры работают со входами - это бит, который вы видите перед фильтром, например, [0:v] (видео первого входного потока) или [a] (созданный вывод с именем a) - и вывод. То есть, входной или входы преобразуются в соответствии с filter и затем выводится либо как выход или выходы.
Здесь у нас есть простой набор действий, и если мы выполним их последовательно, мы сможем построить фильтр-график входов и выходов.
Сегменты
Создайте 3 сегмента видео (из входа [0:v]), используя trim:
- Первый сегмент (90 секунд), ничего не делать (выводится как 
[a]) 
- Второй сегмент (30 секунд), 
hflip и setpts чтобы избежать проблем длительности (обрезать вывод как [b] и передать это hflip для вывода как [c]) 
Эти два затем concat ред вместе , чтобы сделать вывод [a]+[c] -> [d] (продолжительность: 120 сек)
- Третий сегмент (60 секунд), снова установите PTS (выводится как 
[e]) 
Объедините сегменты, чтобы сделать вывод [d] + [e] -> [out1] , и -map для окончательного вывода в файл. 
Это дает вам видео той же длительности, что и оригинал (180 с), но с разделом в 30 секунд в середине, который перевернут горизонтально 2.
1:
  В libavfilter фильтр может иметь несколько входов и несколько выходов. Чтобы проиллюстрировать возможные варианты, рассмотрим следующий фильтр-граф. 
                [main]
input --> split ---------------------> overlay --> output
            |                             ^
            |[tmp]                  [flip]|
            +-----> crop --> vflip -------+
  Этот фильтр графа разделяет входной поток на два потока, а затем отправляет один поток через фильтр кадрирования и фильтр vflip, а затем объединяет его с другим потоком, накладывая его сверху. 
2 Протестировано с использованием ffmpeg version N-72939-g5b0f55a