Использование GStreamer для получения и отправки видео h264 (из OBS) - PullRequest
0 голосов
/ 16 марта 2020

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

OBS: rtp_mpegts to udp: / / localhost: 5000

http-launch 8080 webmmux streamable=true name=stream udpsrc uri=udp://localhost:5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP2T-ES, payload=(int)
33" ! gstrtpjitterbuffer latency=200 ! application/x-rtp ! rtpmp2tdepay ! video/mpegts ! mpegtsdemux ! video/x-h264 ! queue ! decodebin ! vp8enc ! stream.   audiotestsrc ! vorbisenc ! stream.

Однако, используя это, он, кажется, принимает соединения, но просто закрывает их снова через некоторое время. Любые подсказки о том, что я делаю не так? Я открыт для любых изменений формата, если они поддерживаются OBS / ffmpeg.

В качестве бонуса, как мне добавить поддержку аудио также?

Фон

Я нашел https://github.com/sdroege/http-launch, который хорошо работает при отображении видео GStreamer через http:

<video id="video" autoplay="autoplay" controls="">
    <source src="https://localhost:8080" type="video/mp4" codecs="avc1.4D401E, mp4a.40.2">
    You browser doesn't support element <code>video</code>.
</video>

Мне удалось настроить конвейер, где я могу использовать Источник GStreamer направляет в конвейер http-запуска и отображает его на видео:

http-launch 8080 webmmux streamable=true name=stream udpsrc port=5000 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! mpegtsdemu
x ! h264parse ! TIViddec2 ! videoconvert ! vp8enc ! stream.   audiotestsrc ! vorbisenc ! stream.

gst-launch-1.0 -v videotestsrc ! videoconvert ! x264enc tune=zerolatency bitrate=500 speed-preset=superfast ! rtph264pay ! udpsink host=127.0.0.1 port=5000

Однако я не думаю, что OBS поддерживает rpt через UDP. Он использует ffmpeg для отправки этих пакетов, которые могут stream rtp_mpegts. Я нашел несколько фрагментов кода , которые утверждают, что поддерживают формат, и склеивают вышеприведенный конвейер.

...