diff --git a/erde-stream-recorder.sh b/erde-stream-recorder.sh deleted file mode 100644 index ef7a3cf..0000000 --- a/erde-stream-recorder.sh +++ /dev/null @@ -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 \ No newline at end of file