Видеоотзыв L oop с ffmpeg - PullRequest
1 голос
/ 04 мая 2020

Я пытаюсь создать цифровую видео обратную связь oop между двумя компьютерами.

Под этим я подразумеваю следующее:

digital video feedback loop

Я попытался использовать несколько комбинаций протоколов и форматов видео и выяснил это это самое близкое, что я могу получить. Первоначальное видео было "mov", но мне пришлось преобразовать его в .ts, чтобы зайти так далеко, у меня были другие проблемы при использовании mov или mp4.

Я запускал команды в этом порядке, чтобы убедиться, что tcp прослушиватели работали до клиентов.

на локальном компьютере

# Command 1: Temporary attempt to capture output of loop
ffmpeg -i 'udp://0.0.0.0:6002?listen&overrun_nonfatal=1' -c copy out.ts
# Command 2: Receives stream from remote host and forwards back to beginning of loop
ffmpeg -i tcp://0.0.0.0:6001?listen -f mpegts udp://localhost:6002

на удаленном компьютере

#  Command 3: Receives stream from local host and returns stream to another ffmpeg instance
ffmpeg -i tcp://0.0.0.0:6000?listen -f mpegts tcp://<local.ip>:6001

на локальном компьютере

# Command 4: Sends stream to remote host
ffmpeg -re -i in.ts  -f mpegts tcp://<remote.ip>:6000

Приведенные выше шаги не совсем завершают обратную связь l oop, но они приводят к успешному видео out.ts

Затем я попытался изменить Команду 4, чтобы она могла объединить как файл, так и файл. поток udp, это наивная попытка, я знаю, я не очень хорошо разбираюсь в ffmpeg.

 ffmpeg \
    -re -i in.ts -i udp://0.0.0.0:6002 \
    -filter_complex " \
        [0:v]setpts=PTS-STARTPTS, scale=540x960[top]; \
        [1:v]setpts=PTS-STARTPTS, scale=540x960, \
             format=yuva420p,colorchannelmixer=aa=0.5[bottom]; \
        [top][bottom]overlay=shortest=1" \
    -f mpegts tcp://<remote.ip>:6000

В результате команда зависла в ожидании данных на порту udp, что имеет смысл задним числом .

Я хотел бы знать:

  • Можно ли это вообще сделать? Если да, что мне нужно изменить?
  • Нужно ли мне отказаться от ffmpeg для этой задачи и заняться чем-то другим?

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

...