Using RasPi for Video
The RasPi has great hardware for working with video. Sofar we're able to transcode three streams and run the Pi camera at 30fps, encode and deliver with a few secods of latency, even when accounting for intermediate CDN caching. More details here.
This article is a living document... as of now this is what we use to go live.
Based on the nginx-rtmp config here: GitHub
720:
./ffmpeg -hide_banner -y -codec:v h264_mmal -i rtmp://localhost:1935/ispoogedaily_source_720/ispoogedaily_720 -c:a copy -c:v h264 -profile:v main -sc_threshold 0 -g 60 -keyint_min 50 -vf scale=w=1280:h=720:force_original_aspect_ratio=decrease -b:v 6000k -maxrate 6420k -bufsize 9000k -f flv rtmp://localhost:1935/ispoogedaily_local/ispoogedaily_720
360:
./ffmpeg -hide_banner -y -codec:v h264_mmal -i rtmp://localhost:1935/ispoogedaily_source_360/ispoogedaily_360 -c:a copy -c:v h264 -profile:v main -sc_threshold 0 -g 60 -keyint_min 50 -vf scale=w=640:h=360:force_original_aspect_ratio=decrease -b:v 3000k -maxrate 3210k -bufsize 4500k -f flv rtmp://localhost:1935/ispoogedaily_local/ispoogedaily_360
240:
./ffmpeg -hide_banner -y -codec:v h264_mmal -i rtmp://localhost:1935/ispoogedaily_source_240/ispoogedaily_240 -c:a copy -level:v 1.0 -c:v h264 -profile:v main -sc_threshold 0 -g 60 -keyint_min 60 -vf scale=w=426:h=240:force_original_aspect_ratio=decrease -b:v 800k -maxrate 1000k -bufsize 3000k -f flv rtmp://localhost:1935/ispoogedaily_local/ispoogedaily_240
live twitch:
live youtube:
https://gist.github.com/mikoim/27e4e0dc64e384adbcb91ff10a2d3678
./ffmpeg -i rtmp://localhost:1935/ispoogedaily_local/ispoogedaily_720 \
-c:v libx264 -preset slow -profile:v high \
-crf 18 -coder 1 -pix_fmt yuv420p -movflags \
+faststart -g 30 -bf 2 -c:a aac -b:a 384k \
-profile:a aac_low -f flv rtmp://a.live.youtube.com/li...FIXME
number of slices:
find /tmp/hls/ispooge.com -name *.ts | wc -l
number of streams:
find /tmp/hls/ispooge.com -name *.m3u8 | wc -l
check tmpfs (where segments are written):
df -h | grep /tmp$
top right small view:
- screencast
raspivid -p 960,22,320,180 -t 0 -w 320 -h 180 -fps 30 -hf -b 1048576
top left large view:
- whiteboard
raspivid -p 0,20,960,540 -t 0 -w 960 -h 540 -fps 30 -b 8388608
- record
raspivid -p 0,20,960,540 -t 0 -w 960 -h 540 -fps 30 -b 8388608 -o sample.h264