tvstreamrecord - Aufzeichnen von HTTP-Streams

ctrlaltdelete

Benutzer
Mitglied seit
30. Dez 2012
Beiträge
1.456
Punkte für Reaktionen
174
Punkte
89
@Pavion Danke, ich war zu blöd um runterzuscrollen, Link gefunden
 

faxxe

Benutzer
Mitglied seit
22. Nov 2007
Beiträge
161
Punkte für Reaktionen
21
Punkte
24
Hallo,

funktioniert das aktuell auch mit MagentaTV aus ÖSterreich?
Ich hab in dem Thread gelesen wie man per Firefox einen Stream analysieren könnte, aber irgendwie komme ic hda nicht zurecht.

Danke vorab,
faxxe
 

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Sollte eigentlich... wenn VLC es kann, wird es auch hier funktionieren. Einfach probieren.
Hier siehst Du, wie die Links bei Magenta auszusehen haben bzw. anzupassen sind:
Code:
https://github.com/Pavion/tvstreamrecord/issues/45
 

Dirk070

Benutzer
Mitglied seit
02. Jan 2018
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

erstmal vielen Dank für die Entwicklung, eine tolle Sache!!

Ich habe die Installation im Docker-Container auf der Syno (Version 2021-01-24 1.6.1)

Aufnahme der ARD: https://mcdn.daserste.de/daserste/de/master_3628.m3u8
Funktioniert mit einer Testaufnahme.

Aus dem Log:
FFMPEG (https) record 'Das Erste HD' called with:
['ffmpeg', '-i', 'https://mcdn.daserste.de/daserste/de/master_3628.m3u8', '-y', '-t', '419', '-loglevel', 'fatal', '-map', '0', '-c', 'copy', '/volume1/common/20210326105300 - Das_Erste_HD.ts']


Nächster Test mit ZDF:
https://zdf-hls-15.akamaized.net/hls/live/2016498/de/veryhigh/master.m3u8
Aus dem Log:
['ffmpeg', '-i', 'https://zdf-hls-15.akamaized.net/hls/live/2016498/de/veryhigh/master.m3u8', '-y', '-t', '419', '-loglevel', 'fatal', '-map', '0', '-c', 'copy', '/volume1/common/20210326105400 - ZDF_HD.ts']

Something went wrong with 'ZDF HD', retry 1/99 in 10 seconds

Auch ein weiterer Tests mit OneHD: https://onelivestream-lh.akamaihd.net/i/one_livestream@568814/index_4_av-p.m3u8
witft leider den Fehler "Something went wrong" aus.

Wie kann ich die Fehler analysieren?
Danke Euch vorab.

Schöne Grüße
Dirk
 

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Hi Dirk,
bei mir haben gerade alle drei Links funktioniert... Du kannst beim Parameter loglevel statt fatal -> info schreiben, dann siehst Du nach einer (versuchten) Aufnahme die komplette Ausgabe von ffmpeg.
Gruß
Pav
 

Dirk070

Benutzer
Mitglied seit
02. Jan 2018
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Hallo Pav,

vielen Dank für den Hinweis, damit habe ich die Meldung "403 forbidden" sehen können.
Das lag dann dummerweise an einer offenen VPN-Verbindung. Offenbar geht der ARD-Stream auch aus dem Ausland, ZDF aber nicht.

Vielen Dank für die schnelle Hilfe!!
 

Dirk070

Benutzer
Mitglied seit
02. Jan 2018
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Hallo Pav,

noch eine andere Frage hätte ich. Lassen sich mit dem Tool auch Videos aus Mediatheken aufnehmen?

Ich habe erfolgreich einen Live-Stream aufnehmen können, da bleibt die Adresse (URL mit m3u8) stabil.

Ein bestehendes Video (nicht live) ändert aber ständig seine URL, dabei wird der Dateiname mit einem Counter versehen.
Bsp.: master1_1.ts / master1_2.ts / master1_3.ts usw. jeweils in 5MB Teilen.

Lässt sich ein solcher Stream aufnehmen?

Danke vorab und viele Grüße
Dirk
 

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Hi Dirk, Mediatheken werden nicht unterstützt. Irgendwie macht es auch keinen großen Sinn, da es nur einmalig und ohne Timer erfolgt.
Vielleicht schaust Du nach spezifischen Tools, auf Anhieb habe ich z.B. MediathekView gefunden, welches ebenfalls auf ffmpeg basiert.
Gruß
Pav
 

Dirk070

Benutzer
Mitglied seit
02. Jan 2018
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Hi Pav,

Danke Dir, verstehe ich. Mediathekenview nutze ich, das Tool unterstützt nur bestimmte Mediatheken. Dafür ist es super.

Viele Grüße
Dirk
 

Dirk070

Benutzer
Mitglied seit
02. Jan 2018
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Hi Pav,

mit tvstreamrecord abe ich nun mehrere Aufnahmen erfolgreich erstellt, tolles Tool, vielen Dank nochmal an Dich!

Eine Frage noch: ich habe das Postprocessing ausprobiert mit den Standardeinstellungen.
Dabei gab es eine Fehlermeldung im Log.

Postprocessing will be called with following parameters:
['synoindex', '-a', '/volume1/common/20210328165900 - Test_T1_View.ts']
Exception calling postprocessing, please check your command line

Woran kann das liegen, was kann ich an Infos liefern, um Dir eine Einschätzung/Analyse zu ermöglichen?

Danke Dir und schöne Grüße
Dirk
 

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Hi Dirk, die Lage ist klar. Du hast eine Docker-Installation und Docker-Container hat "von innen" natürlich keinen Zugriff auf synoindex - ist ja irgendwie gewollt. Fertige Lösung kenne ich dazu nicht. Ich nehme an, dafür muss auf DS ein zyklischer Job laufen, mit dem entweder der gesamte Ordner (oder nur neue Dateien) indiziert werden.
 

Dirk070

Benutzer
Mitglied seit
02. Jan 2018
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Hi Pav,
ok, verstehe.
Kann man vielleicht ein Script aufrufen?
Habe folgendes probiert: perl /home/Scripts/update-syno-video.sh /volume1/common/

Das klappt noch nicht:
Postprocessing will be called with following parameters:
2021-04-02 18:56:57.629['perl', '/home/Scripts/update-syno-video.sh', '/volume1/common/']
2021-04-02 18:56:57.632Exception calling postprocessing, please check your command line

Lässt sich ein Script überhaupt auf diesem Wege aufrufen?

Viele Grüße
Dirk
 

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Hi Dirk,

aus einem Docker Container kann man per Definition keine Befehle an das übergeordnete Betriebssystem senden. Auch gibt es im Container kein Perl, sondern nur eine kleine Linux Alpine-Installation, Python und ffmpeg.
Stattdessen kannst Du den Aufgabenplaner von Synology nutzen (Systemsteuerung > Aufgabenplaner), um den Ordner zyklisch zu indizieren:
Code:
synoindex -A /meinVideoPfad

Um Ressourcen zu schonen und die Aktualisierung schneller zu gestalten, könnte eine fortgeschrittene Lösung versucht werden:

1) TSR schreibt die abgeschlossenen Dateinamen in eine Textdatei per Postprocessing (hier interner Docker-Pfad):
Code:
sed -i "$ a\%file%" /volume1/common/list.txt

2) Aufgabenplaner prüft häufig, ob die Datei existiert und startet dann die Indexierung nur für neue Dateien (hier externer DS-Pfad):
Code:
#bin/sh
file="/meinVideoPfad/list.txt"
if test -f $file; then
    while read p; do
        synoindex -a "$p"
    done < $file
    rm $file    
fi

3) BASH POWER! o_O

BR
Pav
 

Dirk070

Benutzer
Mitglied seit
02. Jan 2018
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Hallo Pav,

vielen Dank für's Script, funktioniert.
Ich habe noch mit der Aufgabenplanung im Syno-Standard eine Task ausprobiert.

Beispiel: synoindex -R /volume1/video/TVSerien/IPTV

Das funktioniert pfeilschnell und so kann man die Task alle 30 Minuten einplanen und ich habe dort 3 Verzeichnisse hinterlegt.
Klappt super.

Viele Grüße
Dirk
 

Leonfreund

Benutzer
Mitglied seit
31. Mrz 2018
Beiträge
1
Punkte für Reaktionen
0
Punkte
1
@Pavion
Als Erstes einmal großen Dank an dich und dein tvstreamrecord in mittlerweile Version 1.6.2… :)

Habe nun von der Synology DSM 6 zu DSM 7 gewechselt und auch das tsr zur 1.6.2 aktualisiert.
Komme nun aber nicht auf einen grünen Zweig. Habe selbst nun mir alles mögliche versucht es wieder zum laufen zu bekommen aber es erfolgt keine Aufnahme bzw. wird keine Datei erzeugt und das Log bricht immer mit der selben Nachricht ab:

FFMPEG record 'Test Nr. 6' ended with an error:b'rtsp://192.168.178.1:554/?avm=1&freq=402&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=1&pids=0,16,17,18,20,103,1101,1102,1104: Protocol not found\nDid you mean file:rtsp://192.168.178.1:554/?avm=1&freq=402&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=1&pids=0,16,17,18,20,103,1101,1102,1104?\n'

Vielleicht hast du ja einen Tipp für mich um das in den Griff zu bekommen. Ich bin leider mit meinem "laienhaften" Wissen am Ende.

Im Einsatz ist eine DS218 in Verbindung mit einer Fritz!Box 6591 Cable.

Beste Grüße
Gary
 

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Hi Gary,

scheinbar unterstützt die von Dir verwendete ffmpeg-Version kein rtsp.
Checke bitte als Erstes, ob Du VideoStation installiert hast, und versuch dann den Pfad:
Code:
/volume1/@appstore/VideoStation/bin/ffmpeg
Falls es nicht klappt oder Du es bereits versucht hast, schau bitte hier:
https://github.com/Pavion/tvstreamrecord#ffmpeg-support

tl;dr: richtige ffmpeg-Version in /volume1/tvstreamrecord herunterladen, entpacken, Pfad eintragen

PM, wenn Du noch Fragen hast :)

Gruß
Pav
 

hulahoop

Benutzer
Mitglied seit
04. Jan 2019
Beiträge
20
Punkte für Reaktionen
0
Punkte
1
Hi Pavion,

ich bin auch mal wieder hier. :)
Danke für eine immer noch aktuelle Version von TSR! (y)
Habe exakt die gleiche Ausgangslage und somit das gleiche Problem wie Gary.

Wenn ich als Pfad nur ffmpeg drin habe (also die interne Version), dann sagt er Protocol not found.
Wenn ich den Pfad vom ffmpeg der Videostation nehme, sagt er Permission denied: '/volume1/@appstore/VideoStation/bin/ffmpeg'
Wenn ich den Pfad von dem heruntergeladenen ffmpeg verwende (ffmpeg-4.4-amd64-static), sagt er Cannot map stream #0:6 - unsupported type.
o_O

Danke und Grüße

hula
 

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Hallo Hula,

... dann füge auch Du bitte -ignore_unknown hinzu, wie die Fehlermeldung und mein Readme suggerieren :)

Gruß
Pav
 

hulahoop

Benutzer
Mitglied seit
04. Jan 2019
Beiträge
20
Punkte für Reaktionen
0
Punkte
1
Danke - stimmt, das hätte ich noch ausprobieren können. ;)
Habe jetzt nur mit dem mit dem 4.4er ffmpeg versucht. Jetzt sehe ich allerdings, dass er lauter 0kb files generiert:

1627635302480.png
 
Zuletzt bearbeitet:

hulahoop

Benutzer
Mitglied seit
04. Jan 2019
Beiträge
20
Punkte für Reaktionen
0
Punkte
1
So hab noch ein paar Tests gemacht.

Cannot map stream #0:5 - unsupported type.\nCannot map stream #0:6 - unsupported type.\nCannot map stream #0:7 - unsupported type.\n[mp4 @ 0x60bfd80] Could not find tag for codec epg in stream #1, codec not currently supported in container\nCould not write header for output file #0 (incorrect codec parameters ?): Invalid argument\nError initializing output stream 0:4 -- \nStream mapping:\n Stream #0:0 -> #0:0 (copy)\n Stream #0:1 -> #0:1 (copy)\n Stream #0:2 -> #0:2 (copy)\n Stream #0:3 -> #0:3 (copy)\n Stream #0:4 -> #0:4 (copy)\n Last message repeated 1 times\n"

Nachdem ich von MP4 wieder auf TS container umgestellt habe, scheint es zu gehen. Aber warum ist das so? Ich hatte vorher sowohl MPG als auch MP4 und nie TS benutzt. Nun geht nur noch TS....

EDIT: wo kann man eigentlich die automatische vor/nachlaufzeit von Aufnahmen einstellen? Das konnte man in der vorherigen Version getrennt voneinander konfigurieren. Jetzt finde ich es gar nicht mehr ...