Acting as a WHIP forwarder
This example requires port 5000 UDP to be open for inbound traffic
$ donut ./donut -whip-uri https://galene.pi.pe/group/whip/ -srt-uri "srt://0.0.0.0:5000?streamid=test" \
-whip-token ${bearertoken}
You can then send multiple SRT streams to be forwarded as WHIP examples: Camera from a mac:
ffmpeg -f avfoundation -framerate 30 -i "0" \
-pix_fmt yuv420p -c:v libx264 -b:v 1000k -g 30 -keyint_min 120 -profile:v baseline \
-preset veryfast -f mpegts "srt://${bridgeIP}:5000?streamid=me"
Or from a raspi
ffmpeg -f video4linux2 -input_format h264 -video_size 1280x720 -framerate 30 \
-i /dev/video0 -vcodec copy -an -f mpegts "srt://${bridgeIP}:5000?streamid=picam"
Idea for dedicated stream/grabber:
https://github.com/giongto35/cloud-morph/wiki/Deep-Dive-Into-Codebase
https://github.com/giongto35/cloud-morph/wiki/Deep-Dive-Into-Codebase
[program:Xvfb] command=/usr/bin/Xvfb :99: Create Virtual Video Buffer at port :99
[program:pulseaudio] command=pulseaudio: Create Virtual Audio (pulse). Don't need to bind to any port, app still can output audio to it.
[program:syncinput] command=wine syncinput.exe : Script to listen from Web Message to simulate Windows OS Event
[program:wineapp] command=wine %(ENV_appfile)s environment=DISPLAY=:99 : Run Wine app and attach virtual DISPLAY :99 to it
[program:ffmpeg] command=ffmpeg -f x11grab -i :99 -c:v libvpx -f rtp rtp://%(ENV_dockerhost)s:5004 : Video encoding read from Virtual display and export Video RTP stream at port 5004
[program:ffmpegaudio] command=ffmpeg -f pulse -rtp rtp://%(ENV_dockerhost)s:4004 : Audio encoding read from Virtual Audio and export Audio RTP stream at port 4004
>Kindly reconsider your security:
——
(ssh anonce your pub-keys to server by default, to work on unsecure envs try ssh with dev null):
ssh whoami.filippo.io
——
(ssh anonce your pub-keys to server by default, to work on unsecure envs try ssh with dev null):
ssh whoami.filippo.io -i /dev/nulla very nice way to filter HTML or /and output to console:
or
links -codepage utf-8 -force-html -width 400 -dump /dev/stdin
or
links -codepage utf-8 -force-html -width 400 -dump /path/to/html/file.html
a fast way to get serial (and others things from udev):
udevadm info --query=all -n /dev/sda
FFmpeg near precision way to cut video (pt1):
check timing by:
ffmpeg -i planes.mkv -ss 00:00:05.000 -t 00:00:05.500 plane0505_recode.mkv
check timing by:
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 plane0505_recode.mkv
FFmpeg stress test:
(it will load all cpus)
(it will load all cpus)
ffmpeg -y -f rawvideo -video_size 1920x1080 -pixel_format yuv420p -framerate 60 -i /dev/urandom -c:v libx265 -preset placebo -f matroska /dev/null
Random noise from /dev/urandom:
Keep eye on filesize.
ffmpeg -f rawvideo -pixel_format rgb24 -video_size 1920x1080 -framerate 120 -i /dev/urandom -c:v libx264 -preset ultrafast -pix_fmt yuv420p output.mp4
Keep eye on filesize.
FFMPEG
Convert image IN.png to RAW RGB565 format:
Convert image IN.png to RAW RGB565 format:
ffmpeg -vcodec png -i IN.png -vcodec rawvideo -f rawvideo -pix_fmt rgb565 OUT.raw
linux system calls with just the python
standard library:
standard library:
import ctypes
ctypes.CDLL(None).syscall(39)
#
python -c '__import__("ctypes").CDLL(None).syscall(1,1,b"Haiiiiii",8)'
LaTeX to PDF conversion:
tectonic invoice10.tex
(tectonic util will download deps automatically )
tectonic invoice10.tex
(tectonic util will download deps automatically )
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | sed 1000000000q |aplay
cat /dev/urandom | tr -dc '0-9' | fold -w 10 | sed 1000000000q |aplay
cat /dev/urandom | tr -dc '0-9' | fold -w 10 | sed 1000000000q |aplay
cat /dev/urandom | tr -dc '&*(&(^)' | fold -w 10 | sed 1000000000q |aplay
cat /dev/urandom | tr -dc '&*(&(^)' | fold -w 10 | sed 1000000000q |aplay
cat /dev/urandom | tr -dc '~`!@#$%^&*()' | fold -w 1 | sed 1000000000q |aplay
cat /dev/urandom | tr -dc "0-9a-z" |aplay
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 |aplay -r 192000