Я делаю зеркалирование экрана с помощью командных инструментов gstreamer, но результаты позднего обнаружения странные - PullRequest
0 голосов
/ 03 мая 2020

Мне нужно это для работы в локальной сети небольшой площади, поэтому я попробовал это:

gst-launch-1.0 --gst-plugin-path=./gst-timestampoverlay \
        ximagesrc display-name=":0" \
        ! videoconvert \
        ! videoscale \
        ! video/x-raw,framerate=60/1 \
        ! queue max-size-time=1000000 leaky=2 \
        ! vaapih264enc \
        ! queue max-size-time=1000000 leaky=2 \
        ! tcpclientsink host=$1 port=5000 sync=false

и

gst-launch-1.0 --gst-plugin-path=./gst-timestampoverlay \
    tcpserversrc host=0.0.0.0 port=5000 \
    ! h264parse \
    ! queue max-size-time=1000000 leaky=2 \
    ! vaapih264dec low-latency=true base-only=true \
    ! queue max-size-time=1000000 leaky=2 \
    ! videoconvert \
    ! ximagesink sync=false

Я также написал небольшое приложение для проверки задержки каждого кадра и обнаружил, что средняя задержка при использовании Wi-Fi для преобразования экрана меньше, чем при использовании проводной сети.

Более того, когда я использовал другое программное обеспечение с закрытым исходным кодом для тестирования, я обнаружил, что задержка каждого кадра значительно отличается, в то время как при использовании gstreamer задержка каждого кадра всегда находится в относительно узкой области.

Может кто-нибудь помочь мне объяснить это несоответствие в поведении.

...