我已经创建了一个图像容器,用于下载、构建和安装GStreamer。之后,当我运行容器时,我尝试运行GStreamer命令行,像这样
gst-launch-1.0 -v filesrc location=/home/Documents/video.mp4 ! decodebin !
videoconvert ! jpegenc ! rtpjpegpay ! udpsink host=127.0.0.1 port=5000
我无法从容器外部接收相应命令的流:
gst-launch-1.0 udpsrc port=5000 !
application/x-rtp,encoding-name=JPEG,payload=26 ! rtpjpegdepay !
jpegdec ! autovideosink
但是当我在容器外运行这两个命令时,它工作得很好。
有人知道它是怎么做的吗?
奥林匹克广播服务公司:
- 这是我如何运行的容器:
docker build -t gstreamer-image .
docker run -it -p 127.0.0.1:5000:5000/udp 3c1b4d08122e
- 我也试过这样运行:
docker run -it -p 127.0.0.1:5000:5000 3c1b4d08122e
和标签——network=host
不需要弄清楚如何转发端口,只需直接打开到主机的udp连接:
docker容器中的Sender:
docker run -it --rm --add-host=host.docker.internal:host-gateway gstreamer-image bash
gst-launch-1.0 videotestsrc ! videoconvert ! jpegenc ! rtpjpegpay ! udpsink host=host.docker.internal port=5000
主机上的接收器:
gst-launch-1.0 udpsrc port=5000 ! application/x-rtp,encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink