Как синхронизировать видеовходы с разными кадрами в секунду

Во-первых, встроенная поддержка клавиатуры в VirtualBox (и любом другом диспетчере виртуальных машин )не перенаправляет сигналы USB HID с клавиатуры, а интерпретирует скан-коды, предоставленные ОС, и генерирует эмулированные скан-коды в виртуальной машине (. и это, вероятно, клавиатура PS/2 в виртуальной машине, а не USB ). То же самое относится к мыши и любому другому устройству ввода.

Во-вторых, в разделе 3.10 руководства VirtualBox (, где вы должны искать подобные вещи в первую очередь ), очень четко объясняется, как подключать USB-устройства к виртуальной машине.

0
04.09.2020, 23:30
1 ответ

Я до сих пор точно не знаю почему, но сработало следующее:

ffmpeg \
  -f x11grab \
  -video_size 1920x1080 \
  -framerate 60 \
  -i :0.0 \
  -f v4l2 \
  -video_size 320x240 \
  -framerate 15 \
  -i /dev/video0 \
  -filter_complex '[0:v]setpts=RTCTIME-RTCSTART[dt];[1:v]setpts=PTS-STARTPTS[wc];[dt][wc]overlay=10:(H-h)/2[o]' \
  -map '[o]' \
  -r 60 \
  -vcodec libx264 \
  -an \
  -f mpegts \
  udp://127.0.0.1:3333

Хотя в документации указано, что RTCTIMEустарело, и большинство людей используют PTS-STARTPTS, кажется, я заставил поток основываться на времени, а не на числовой последовательности.

Редактировать:

Со следующим фильтром также работает, и я считаю, что он лучше подходит:

[0:v]setpts=N/FRAME_RATE/TB[dt];[1:v]setpts=N/FRAME_RATE/TB,fps=fps=60[wc];[dt][wc]overlay=10:(H-h)/2[o]

Он обеспечивает фиксированную частоту кадров, а также настраивает веб-камеру так, чтобы на выходе она была такой же, как и ожидалось.

0
18.03.2021, 23:07

Теги

Похожие вопросы