Initial commit - stream factory
This commit is contained in:
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
# HLS runtime
|
||||
hls/*
|
||||
!hls/.keep
|
||||
|
||||
# logs
|
||||
logs/*
|
||||
!logs/.keep
|
||||
|
||||
# temp
|
||||
*.log
|
||||
|
||||
# system
|
||||
*.pid
|
||||
*.sock
|
||||
30
bin/http-hls.sh
Executable file
30
bin/http-hls.sh
Executable file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
LOG="/opt/stream-factory/logs/cnews.log"
|
||||
HLS_DIR="/opt/stream-factory/hls"
|
||||
|
||||
mkdir -p "$HLS_DIR"
|
||||
|
||||
echo "$(date '+%F %T') - Démarrage FFmpeg Freebox CNEWS" >> "$LOG"
|
||||
|
||||
exec ffmpeg \
|
||||
-rtsp_transport udp \
|
||||
-i "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=679&flavour=sd" \
|
||||
-map 0:v:0 \
|
||||
-map 0:a:0 \
|
||||
-sn \
|
||||
-vf scale=1024:576 \
|
||||
-c:v libx264 \
|
||||
-preset veryfast \
|
||||
-b:v 1500k \
|
||||
-g 50 \
|
||||
-c:a aac \
|
||||
-b:a 128k \
|
||||
-f hls \
|
||||
-hls_time 4 \
|
||||
-hls_list_size 10 \
|
||||
-hls_flags delete_segments+append_list+independent_segments \
|
||||
-hls_segment_filename "$HLS_DIR/cnews_%03d.ts" \
|
||||
"$HLS_DIR/cnews.m3u8"
|
||||
>> "$LOG" 2>&1
|
||||
0
logs/.keep
Normal file
0
logs/.keep
Normal file
13
scripts/restart_stream.sh
Executable file
13
scripts/restart_stream.sh
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "=== Restart CNEWS $(date) ===" >> /opt/stream-factory/logs/restart_stream.log
|
||||
|
||||
systemctl stop cnews-http.service
|
||||
systemctl stop http-hls.service
|
||||
|
||||
rm -f /opt/stream-factory/hls/*
|
||||
systemctl start http-hls.service
|
||||
sleep 3
|
||||
systemctl start cnews-http.service
|
||||
|
||||
echo "=== Restart terminé $(date) ===" >> /opt/stream-factory/logs/restart_stream.log
|
||||
13
services/cnews-http.service
Normal file
13
services/cnews-http.service
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=CNEWS HLS HTTP Server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=eveny
|
||||
WorkingDirectory=/opt/stream-factory/hls
|
||||
ExecStart=/usr/bin/python3 -m http.server 8080
|
||||
Restart=always
|
||||
RestartSec=2
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
30
services/http-hls.service
Normal file
30
services/http-hls.service
Normal file
@ -0,0 +1,30 @@
|
||||
[Unit]
|
||||
Description=HLS Stream
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/opt/stream-factory/bin/http-hls.sh
|
||||
|
||||
# 🔥 CRITIQUE
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
# 🔒 stabilité
|
||||
KillSignal=SIGINT
|
||||
TimeoutStopSec=10
|
||||
|
||||
# 👤 user
|
||||
User=eveny
|
||||
WorkingDirectory=/opt/stream-factory
|
||||
|
||||
# 📜 logs
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
# 🧠 évite blocage
|
||||
StartLimitInterval=0
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user