我需要通过时钟覆盖将视频从服务器流式传输到客户端。服务器必须位于Docker镜像内。
这是服务器命令:
gst-launch-1.0 \
v4l2src device=/dev/video0 \
! videorate ! videoscale \
! clockoverlay shaded-background=true font-desc="Sans 38" \
! video/x-raw,format=I420,width=640,height=360,framerate=25/1 \
! jpegenc ! rtpjpegpay \
! udpsink host=localhost port=5000
这是客户:
gst-launch-1.0 -v \
udpsrc port=5000 \
! application/x-rtp, encoding-name=JPEG, framerate=25/1 \
! rtpjpegdepay ! jpegdec ! videoconvert ! ximagesink
正如您可以尝试的那样,效果很好。但是当从Docker镜像运行服务器时,我收到此警告并且进程停止:
警告:错误的管道:没有元素“clockoverlay”
这是我的Docker文件:
from ubuntu:16.04
MAINTAINER Me
RUN apt-get update && apt-get install --no-install-recommends -y \
openjdk-8-jre \
gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-tools \
&& rm -rf /var/lib/apt/lists/*
ENTRYPOINT exec \
gst-launch-1.0 \
v4l2src device=/dev/video0 \
! videorate ! videoscale \
! clockoverlay shaded-background=true font-desc="Sans 38" \
! video/x-raw,format=I420,width=640,height=360,framerate=25/1 \
! jpegenc ! rtpjpegpay \
! udpsink host=localhost port=5000
我能错过什么?我可以添加任何依赖吗?文本叠加也不起作用,所以我怀疑是字体问题,并尝试安装字体解放,没有运气。
编辑:我登录了我的docker镜像,并且gst-inspect-1.0 clockoverlay答案没有这样的元素或插件'clockoverlay'
答案 0 :(得分:2)
我只需要安装gstreamer1.0-x。