Release: v2.3.0
This commit is contained in:
@@ -1,118 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Script Name: erde-stream-recorder.sh
|
|
||||||
# Beschreibung: Zeichnet den Euer.TV Stream lokal auf und speichert diesen als *.mp4-File ab.
|
|
||||||
# Aufruf: ./bash erde-stream-recorder.sh
|
|
||||||
# Autor: Patrick Asmus
|
|
||||||
# Web: https://www.media-techport.de
|
|
||||||
# Git-Reposit.: https://git.media-techport.de/scriptos/private-script-collection.git
|
|
||||||
# Version: 1.2.3
|
|
||||||
# Datum: 10.10.2023
|
|
||||||
# Modifikation: Texte angepasst
|
|
||||||
#####################################################
|
|
||||||
|
|
||||||
# Signal-Handler für das INT-Signal (Interrupt)
|
|
||||||
function handle_interrupt() {
|
|
||||||
echo "Aufzeichnung abgebrochen."
|
|
||||||
echo "Möchten Sie die zuletzt erstellte Datei löschen? (Y/n)"
|
|
||||||
read -n 1 -r response
|
|
||||||
if [[ "$response" =~ ^[Yy]$ ]]; then
|
|
||||||
rm -f "$output_file"
|
|
||||||
echo "Datei gelöscht: $output_file"
|
|
||||||
fi
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# Überprüfung, ob ffmpeg installiert ist
|
|
||||||
if ! command -v ffmpeg &> /dev/null; then
|
|
||||||
echo "ffmpeg ist nicht installiert. Das Skript wird ffmpeg installieren."
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install -y ffmpeg
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Fehler beim Installieren von ffmpeg. Beenden."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Downloadpfad
|
|
||||||
download_path="/home/downloads/erde-streams"
|
|
||||||
mkdir -p $download_path
|
|
||||||
|
|
||||||
# Stream-Informationen Variablen
|
|
||||||
stream1_name="Euer.TV-Stream_Main"
|
|
||||||
stream1_url="rtmp://rtmp21.euer.tv/live/1080p"
|
|
||||||
|
|
||||||
stream2_name="Euer.TV-Stream_Donnerwolke"
|
|
||||||
stream2_url="rtmp://hls21.euer.tv/source/donnerwolke"
|
|
||||||
|
|
||||||
stream3_name="Euer.TV-Stream_SchiWaGoA"
|
|
||||||
stream3_url="rtmp://hls21.euer.tv/source/schiwagoa"
|
|
||||||
|
|
||||||
# Funktion zur Aufzeichnung eines Streams
|
|
||||||
function record_stream() {
|
|
||||||
stream_name="$1"
|
|
||||||
stream_url="$2"
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
timestamp=$(date +'%Y%m%d%H%M%S')
|
|
||||||
output_file="$download_path/$stream_name-$timestamp.mp4"
|
|
||||||
echo "Starte Aufzeichnung von $stream_name..."
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
ffmpeg -i "$stream_url" -c copy "$output_file"
|
|
||||||
ret_code=$?
|
|
||||||
if [ $ret_code -eq 0 ]; then
|
|
||||||
echo "Die Aufzeichnung von $stream_name wurde abgeschlossen und als $output_file gespeichert."
|
|
||||||
break
|
|
||||||
else
|
|
||||||
echo "Fehler bei der Aufzeichnung von $stream_name (Fehlercode: $ret_code)."
|
|
||||||
echo "Warte 3 Sekunden, um erneut zu versuchen..."
|
|
||||||
sleep 3
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Drücken Sie 'Q', um die Aufzeichnung zu beenden, oder 'Enter', um fortzufahren..."
|
|
||||||
read -n 1 -s -r key
|
|
||||||
if [ "$key" = "Q" ] || [ "$key" = "q" ]; then
|
|
||||||
echo "Aufzeichnung beendet."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Stream-Abbruch beim INT-Signal (Interrupt) behandeln
|
|
||||||
trap handle_interrupt INT
|
|
||||||
|
|
||||||
# Menü für Stream-Auswahl
|
|
||||||
while true; do
|
|
||||||
echo "Bitte wählen Sie einen Stream aus:"
|
|
||||||
echo "1. $stream1_name"
|
|
||||||
echo "2. $stream2_name"
|
|
||||||
echo "3. $stream3_name"
|
|
||||||
echo "4. Eigenen Stream eingeben"
|
|
||||||
echo "5. Beenden"
|
|
||||||
read -p "Ihre Auswahl: " choice
|
|
||||||
|
|
||||||
case "$choice" in
|
|
||||||
1)
|
|
||||||
record_stream "$stream1_name" "$stream1_url"
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
record_stream "$stream2_name" "$stream2_url"
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
record_stream "$stream3_name" "$stream3_url"
|
|
||||||
;;
|
|
||||||
4)
|
|
||||||
read -p "Geben Sie die URL des Streams ein: " custom_url
|
|
||||||
read -p "Geben Sie einen Namen für den Stream ein: " custom_name
|
|
||||||
record_stream "$custom_name" "$custom_url"
|
|
||||||
;;
|
|
||||||
5)
|
|
||||||
echo "Aufzeichnung beendet."
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Ungültige Auswahl. Bitte erneut versuchen."
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
Reference in New Issue
Block a user