30 lines
565 B
Bash
Executable File
30 lines
565 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
DEVICE=${1:-/dev/video0}
|
|
DELAY=${2:-30}
|
|
SIZE=${3:-1280x720}
|
|
FPS=${4:-20}
|
|
|
|
rm -rf /tmp/delay_stream*
|
|
|
|
ffmpeg -f v4l2 -framerate $FPS -video_size $SIZE -i $DEVICE \
|
|
-vcodec libx264 -preset ultrafast -tune zerolatency \
|
|
-vf scale=720:576 \
|
|
-f hls -hls_time 1 -hls_list_size $((DELAY + 5)) -hls_flags delete_segments \
|
|
/tmp/delay_stream.m3u8 &
|
|
FFMPEG_PID=$!
|
|
|
|
start=`date +%s`
|
|
|
|
until [ -f /tmp/delay_stream.m3u8 ]; do sleep 0.1; done
|
|
|
|
end=`date +%s`
|
|
|
|
sleep $((DELAY - end + start))
|
|
|
|
ffplay /tmp/delay_stream.m3u8
|
|
|
|
kill $FFMPEG_PID $HTTP_PID
|