【发布时间】:2017-06-28 23:08:27
【问题描述】:
我正在为一个项目使用 Docker。目标是在 VLC 中播放视频并通过 RTSP 协议发送数据流,以便其他机器(用户)可以在他们的机器上实时看到视频。 视频、Dockerfile 和 bash 文件位于同一个文件夹中。这是我使用的 bash 文件(simulate_video_stream.sh):
# Two facultativ parameters : -f <nameOfTheVideoFile> and -i <URL_Output>
SCRIPTPATH=$( cd $(dirname $0) ; pwd -P );
name=$SCRIPTPATH"/counter.mp4";
sdp="rtsp://:8554/flux";
while getopts "f:i:" OPTNAME
do
case $OPTNAME in
f) name=$OPTARG;;
i) sdp=$OPTARG;;
esac
done
sout="#transcode{vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:rtp{sdp="$sdp"}";
vlc -vvv $name --sout $sout
这里是 Dockerfile:
FROM ubuntu
RUN apt-get update \
&& apt-get install -y vlc
COPY simulate_video_stream.sh /tmp/
COPY counter.mp4 /tmp/
ENTRYPOINT ["/tmp/simulate_video_stream.sh"]
"sudo docker build -t test 构建成功。我希望将它与 bash 文件中定义的两个参数一起使用,例如 "docker run test - f namevideo.mp4 -i rtsp://:8554/test" 但它返回“写管道:错误的文件描述符” 我该怎么办?谢谢
【问题讨论】:
-
出于好奇,主机操作系统是什么,架构是什么?
-
我使用的是 Ubuntu 16.04 x64
标签: bash video docker vlc rtsp