gpt4 book ai didi

audio - gst-launch-1.0不能通过UDP传输音频/视频并将其同时显示在窗口上

转载 作者:行者123 更新时间:2023-12-03 01:44:17 26 4
gpt4 key购买 nike

我已成功通过Windows上的UDP流传输文件(音频/视频),并在另一台具有VLC(this was covered on Stackoverflow before)的计算机上观看了该文件:

gst-launch-1.0 -v filesrc location=video.mkv ! decodebin name=dec ! videoconvert ! x264enc ! video/x-h264 ! mpegtsmux name=mux ! queue ! udpsink host=127.0.0.1 port=5000 sync=true dec. ! queue ! audioconvert ! voaacenc ! audio/mpeg ! queue ! mux.

您可以在VLC上对此进行测试:媒体>打开网络流>网络URL> udp:// @:5000

但是,在流式传输视频时,我想也将显示在窗口上,以便我自己观看流(无需音频)。

为此,我先进行了一系列小实验,以便可以毫无意外地更改原始管道。如果您正在阅读此问题,您会知道我的计划效果不佳。

我的第一个实验是在单个窗口上仅显示视频:
gst-launch-1.0 -v filesrc location=video.mkv ! decodebin ! autovideosink

然后,我将其更改为在2个窗口上显示相同的视频,以确保我了解如何使用多线程:
gst-launch-1.0 -v filesrc location=video.mkv ! decodebin name=dec ! queue ! tee name=t t. ! queue ! videoconvert ! autovideosink t. ! autovideosink

最终,是时候将这两个部分融合在一起,并在本地显示视频时通过网络流式传输视频了。结果当然不是我所期望的:只有第一个帧看起来像是流式传输,然后所有内容都冻结了:
gst-launch-1.0 -v filesrc location=video.mkv ! decodebin name=dec ! tee name=t ! queue ! autovideosink t. ! queue ! videoconvert ! x264enc ! video/x-h264 ! mpegtsmux name=mux ! queue ! udpsink host=127.0.0.1 port=5000 sync=true dec. ! queue ! audioconvert ! voaacenc ! audio/mpeg ! queue ! mux.

似乎数据不再流经管道了(由于某种我不知道的原因),而我尝试添加 autovideosink破坏了一切。

有关如何正确执行此操作的任何提示?

最佳答案

正确的分割数据的时间就在filesrc之后:

gst-launch-1.0 -v filesrc location=video.mkv ! tee name=t ! queue ! decodebin ! autovideosink t. ! queue ! decodebin name=dec ! videoconvert ! x264enc ! video/x-h264 ! mpegtsmux name=mux ! queue ! udpsink host=127.0.0.1 port=5000 sync=true dec. ! queue ! audioconvert ! voaacenc ! audio/mpeg ! queue ! mux.

因此,数据将在其他任何事件发生之前直接流到 autovideosink,而另一个线程也同时加入,将数据流带到 queue和第二nd decodebin

关于audio - gst-launch-1.0不能通过UDP传输音频/视频并将其同时显示在窗口上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44916515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com