break out mds
This commit is contained in:
parent
675b141fc1
commit
5fedab85a8
5 changed files with 226 additions and 108 deletions
52
icecast-darkice.md
Normal file
52
icecast-darkice.md
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
https://dev.to/shilleh/stream-audio-from-raspberry-pi-to-local-computer-1a1c
|
||||||
|
icecast/darkice
|
||||||
|
|
||||||
|
sudo apt install icecast2
|
||||||
|
sudo apt install darkice
|
||||||
|
|
||||||
|
sudo vim /etc/darkice.cfg
|
||||||
|
|
||||||
|
```
|
||||||
|
[general]
|
||||||
|
duration = 0 # Stream indefinitely
|
||||||
|
bufferSecs = 5 # Buffer for the input, in seconds
|
||||||
|
reconnect = yes # Reconnect to the server if disconnected
|
||||||
|
|
||||||
|
[input]
|
||||||
|
device = plughw:1,0 # Your audio capture device
|
||||||
|
sampleRate = 44100
|
||||||
|
bitsPerSample = 16 # Bits per sample
|
||||||
|
channel = 1 # 2 = stereo, 1 = mono
|
||||||
|
|
||||||
|
[icecast2-0]
|
||||||
|
bitrateMode = cbr # Constant bit rate
|
||||||
|
format = mp3 # Audio format
|
||||||
|
bitrate = 128 # Bitrate in kbps
|
||||||
|
server = localhost # Server name or IP
|
||||||
|
port = 8000 # Port number
|
||||||
|
password=emergence # Your Icecast password
|
||||||
|
mountPoint = portal # Mount point to stream to
|
||||||
|
name = Black Portal # Name of the stream
|
||||||
|
description = Black Portal Project # Description of the stream
|
||||||
|
url = http://192.168.0.203 # URL related to the stream
|
||||||
|
genre = politics # Genre of the stream
|
||||||
|
public = no # Do not list on public lists
|
||||||
|
```
|
||||||
|
|
||||||
|
sudo vim /lib/systemd/system/owncast.service
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Darkice Service
|
||||||
|
[Service]
|
||||||
|
User=root
|
||||||
|
Type=simple
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5
|
||||||
|
WorkingDirectory=/home/grace
|
||||||
|
ExecStart=/usr/bin/darkice -c /etc/darkice.cfg
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
||||||
|
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
|
||||||
13
listener.md
Normal file
13
listener.md
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
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)"
|
||||||
122
nginx-rtmp.md
Normal file
122
nginx-rtmp.md
Normal file
|
|
@ -0,0 +1,122 @@
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
30
owncast.md
Normal file
30
owncast.md
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
owncast
|
||||||
|
curl -s https://owncast.online/install.sh | bash
|
||||||
|
cd owncast
|
||||||
|
./owncast
|
||||||
|
|
||||||
|
sudo apt install v4l2loopback-dkms
|
||||||
|
v4l2-ctl --list-devices
|
||||||
|
|
||||||
|
ffmpeg -f alsa -ac 2 -i hw:1,0 -thread_queue_size 64 -f v4l2 -framerate 60 -video_size 1280x720 -input_format yuyv422 -i /dev/video2 -c:v libx264 -preset veryfast -b:v 1984k -maxrate 1984k -bufsize 3968k -vf "format=yuv420p" -g 60 -c:a aac -b:a 128k -ar 44100 -f flv rtmp://localhost/live/Kw12mhxBlBQMsbMZUqNk6qDRgl!
|
||||||
|
|
||||||
|
|
||||||
|
ffmpeg -input_format h264 -f video4linux2 -s 1920x1080 -i /dev/video0 -f lavfi -i anullsrc -c:v copy -c:a aac -shortest -f flv rtmp://localhost/live/Kw12mhxBlBQMsbMZUqNk6qDRgl!
|
||||||
|
|
||||||
|
sudo vim /lib/systemd/system/owncast.service
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Owncast Service
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5
|
||||||
|
WorkingDirectory=/home/grace/owncast
|
||||||
|
ExecStart=/var/www/owncast/owncast
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl start owncast
|
||||||
117
readme.md
117
readme.md
|
|
@ -1,113 +1,14 @@
|
||||||
1. install raspian
|
# Black Portal Detroit
|
||||||
2. boot
|
https://blackportaldetroit.com
|
||||||
3. configure default sound card
|
|
||||||
|
|
||||||
lsusb
|
## Broadcaster
|
||||||
alsamixer
|
user: grace
|
||||||
|
hostname: portal.local
|
||||||
|
Running icecast and darkice. See icecast-darkice.md for setup instructions.
|
||||||
|
|
||||||
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
|
## Listener
|
||||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
user: grace
|
||||||
|
hostname: listener.local
|
||||||
|
|
||||||
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 nano /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 chown -R $USER:$USER /var/www/html/portal
|
|
||||||
sudo chmod -R 775 /var/www/html/portal
|
|
||||||
|
|
||||||
sudo mkdir /var/www/html/portal
|
|
||||||
sudo systemctl reload nginx
|
|
||||||
sudo apt install ffmpeg
|
|
||||||
|
|
||||||
nano ~/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 nano /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
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue