我正在爲一個項目使用Docker。其目標是在VLC中播放視頻並通過RTSP協議發送數據流,以便其他機器(用戶)可以在他們的機器上實時觀看視頻。 視頻,Dockerfile和bash文件位於相同的文件夾中。這裏是一個bash文件(simulate_video_stream.sh)我使用:在Docker鏡像中運行vlc以通過rtsp協議發送視頻流
# 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"]
構建由成功 「命令泊塢窗打造-t測試。」我希望可以在bash文件中定義兩個參數,比如「docker run test -f namevideo.mp4 -i rtsp://:8554/test」 但是它會返回「write pipe:bad file描述符「 我該怎麼辦?謝謝
出於好奇,是什麼主機O S和什麼架構? –
我使用Ubuntu 16.04 x64 –