42 lines
1.4 KiB
Bash
Executable File
42 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
ADDR=${ADDR:-"https://relay.quic.video"}
|
|
NAME=${NAME:-"bbb"}
|
|
URL=${URL:-"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"}
|
|
|
|
# Download the funny bunny
|
|
wget -nv "${URL}" -O "${NAME}.mp4"
|
|
|
|
# ffmpeg
|
|
# -hide_banner: Hide the banner
|
|
# -v quiet: and any other output
|
|
# -stats: But we still want some stats on stderr
|
|
# -stream_loop -1: Loop the broadcast an infinite number of times
|
|
# -re: Output in real-time
|
|
# -i "${INPUT}": Read from a file on disk
|
|
# -vf "drawtext": Render the current time in the corner of the video
|
|
# -an: Disable audio for now
|
|
# -b:v 3M: Output video at 3Mbps
|
|
# -preset ultrafast: Don't use much CPU at the cost of quality
|
|
# -tune zerolatency: Optimize for latency at the cost of quality
|
|
# -f mp4: Output to mp4 format
|
|
# -movflags: Build a fMP4 file with a frame per fragment
|
|
# - | moq-pub: Output to stdout and moq-pub to publish
|
|
|
|
# Run ffmpeg
|
|
ffmpeg \
|
|
-stream_loop -1 \
|
|
-hide_banner \
|
|
-v quiet \
|
|
-re \
|
|
-i "${NAME}.mp4" \
|
|
-vf "drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf:text='%{gmtime\: %H\\\\\:%M\\\\\:%S.%3N}':x=(W-tw)-24:y=24:fontsize=48:fontcolor=white:box=1:boxcolor=black@0.5" \
|
|
-an \
|
|
-b:v 3M \
|
|
-preset ultrafast \
|
|
-tune zerolatency \
|
|
-f mp4 \
|
|
-movflags empty_moov+frag_every_frame+separate_moof+omit_tfhd_offset \
|
|
- | moq-pub "${ADDR}/${NAME}"
|