portal/nginx-rtmp.md
2025-03-28 13:31:25 -07:00

122 lines
2.5 KiB
Markdown

1. install raspian
2. boot
3. configure default sound card
c
alsamixer
arecord -l
arecord -f cd -D plughw:0,0 | ffmpeg -i - -acodec libmp3lame -ab 128k -ac 1 -f rtp rtp://127.0.0.1:3000
sudo apt install git nginx vim zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-video-streaming-server-using-nginx-rtmp-on-ubuntu-20-04
sudo apt install libnginx-mod-rtmp
sudo vim /etc/nginx/nginx.conf
```
rtmp {
server {
listen 1935;
chunk_size 4096;
allow publish 127.0.0.1;
deny publish all;
application live {
live on;
record off;
hls on;
hls_path /var/www/html/portal/hls;
hls_fragment 3;
hls_playlist_length 60;
dash on;
dash_path /var/www/html/portal/dash;
}
}
}
```
sudo vim /etc/nginx/sites-available/portal.conf
```
server {
listen 8080;
server_name localhost;
# rtmp stat
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /var/www/html/portal;
}
# rtmp control
location /control {
rtmp_control all;
}
}
server {
listen 80;
location / {
add_header Access-Control-Allow-Origin *;
root /var/www/html/portal;
}
}
types {
application/dash+xml mpd;
}
```
sudo ln -s /etc/nginx/sites-available/portal.conf /etc/nginx/sites-enabled/portal.conf
sudo mkdir /var/www/html/portal
sudo chown -R $USER:$USER /var/www/html/portal
sudo vim /var/www/html/portal/stat.xsl
paste in https://github.com/arut/nginx-rtmp-module/blob/master/stat.xsl
https://github.com/arut/nginx-rtmp-module/blob/master/stat.xsl
sudo systemctl reload nginx
sudo apt install ffmpeg
vim ~/portal.sh
arecord -f cd -D plughw:3,0 | ffmpeg -i - -acodec aac -ab 128k -ac 1 -f flv rtmp://localhost/live/portal
chmod u+x ~/portal.sh
sudo vim /lib/systemd/system/portal.service
```
[Unit]
Description=portal
After=network.target
[Service]
Environment=NODE_ENV=production
Type=simple
User=grace
WorkingDirectory=/home/grace/
ExecStart=/home/grace/portal.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
```
sudo systemctl daemon-reload && sudo systemctl enable --now portal && sudo systemctl start portal