tvstreamrecord - Aufzeichnen von HTTP-Streams

utk771

Benutzer
Mitglied seit
08. Jul 2011
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo Pavion, ich habe die Version 1.5.1 installiert. Jetzt stellt sich mir die Frage wie man die Datenbank sichern kann.
Gruß utk771
 
Zuletzt bearbeitet:

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Hi! Schau bitte in den erweiterten Einstellungen nach, der erste Eintrag dort erlaubt Dir die Datenbank irgendwohin zu verschieben, wo Du sie auch abspeichern kannst. Im Zweifelsfall geht es aber auch über die Konsole/Terminal.
 

Semantics

Benutzer
Mitglied seit
26. Jan 2021
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hi Pavion, Ich nutze Tvstreamrecord jetzt schon ein paar Jahre, vielen Dank für das super Tool!

Jetzt würde ich gerne auf die Docker Version umsteigen und habe diese auch bereits erfolgreich in Betrieb genommen.
Funktioniert auch alles super!

Allerdings bekomme ich es mit der Docker-Version nicht hin im Postprocessing dem synoindex die abgeschlossenen Aufnahmen zu übergeben. Wodurch sie dann per DLNA auch nicht am TV angezeigt werden.
Hat jemand hierfür eine Lösung parat?
 

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Hm... Gute Frage... Da ich nun auch eine DSM7-Version habe, könntest Du doch diese ausprobieren, es würde auch mich interessieren, ob der Befehl weiterhin funktioniert :p
Alternativ könnte er ggfs. mit einem Cronjob regelmäßig durchgeführt werden.
 
  • Like
Reaktionen: Semantics

Semantics

Benutzer
Mitglied seit
26. Jan 2021
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Mit der "normalen" Version direkt auf der Syno funktioniert auch das triggern des Synoindex im postprocessing.

Ich denke es liegt daran, dass die Docker-Version aus dem Container heraus den Synoindex nicht triggern kann, oder?

Falls das so ist: Gibt es eine Möglichkeit den Filenamen der aufnahme im Postprocessing in eine Textdatei zu speichern, damit ich diese dann per cronjob direkt auf der Diskstation zum synoindex hinzufügen kann?
 

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
  • Like
Reaktionen: Semantics

Semantics

Benutzer
Mitglied seit
26. Jan 2021
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Naja, Docker ist halt ein geschlossenes System, welches in sich auch kein synoindex hat oder aufrufen kann. Das ist ja irgendwie gewollt.
Auf DS selbst hingegen kannst Du synoindex auch für den gesamten Ordner aufrufen. Wie ich es verstehe, werden dabei auch nur neue Dateien indexiert:
https://indibit.de/synology-diskstation-medien-indizierung-synoindex-per-scriptkommandozeile/
Danke dir, ich spiel damit mal bisschen rum und guck ob ich damit ne vernünftige Lösung gebastelt bekomme. :)
 

dennip

Benutzer
Mitglied seit
21. Feb 2019
Beiträge
44
Punkte für Reaktionen
0
Punkte
6
Hey Pavion, ich bin jetzt auch auf die Docker Version umgestiegen.
Braucht es dort zusätzlich ffmpeg? Wenn ja, wie integriere ich das? Hab für das Docker Image ffmpeg-release-amd64-static.tar.xz von John van Sickel bereitgestellt. Aufnahme erfolgt aber als .TS File.
 

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Nein, ffmpeg sollte bereits integriert und lauffähig sein, Aufnahme als .ts sollte auch richtig sein. Wo ist denn das Problem?
 
  • Like
Reaktionen: Semantics

dennip

Benutzer
Mitglied seit
21. Feb 2019
Beiträge
44
Punkte für Reaktionen
0
Punkte
6
Die Dateigröße ;) Aber hab es lange nicht mehr verwendet, vllt habe ich vergessen, dass unkomprimiert gespeichert wird :)
 
Zuletzt bearbeitet von einem Moderator:

Fusion

Benutzer
Mitglied seit
06. Apr 2013
Beiträge
12.689
Punkte für Reaktionen
479
Punkte
359
Kein stream wird unkomprimiert gespeichert. Alle DVB oder IP Streams sind komprimiert.
Der TS (transport stream) ist ja nur ein Container. Je nachdem welcher Codec (mpeg2/mpeg4) darin zum Einsatz kommt und welche Auflösung (SD, 720p,1080p) das Signal hat dann eben (deutlich) unterschiedliche Dateigrößen.
 

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Danke @Fusion, genau so ist es.
Mit Standardeinstellungen kopiert ffmpeg lediglich den Stream ohne Umwandlung, wie er von der Quelle kommt. Es ist natürlich möglich, auf leistungsstarken Systemen mit ffmpeg eine on-the-fly-Komprimierung durchzuführen. Die dafür erforderlichen Parameter müssen aber per Hand ermittelt werden, im Internet finden sich viele Beispiele dafür. Ob es sich nun lohnt, ein NAS-System auf 100% zu belasten, um 100MB zu sparen, steht auf einem anderen Blatt :unsure:
 

plumeharry

Benutzer
Mitglied seit
08. Feb 2021
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Hallo allerseits,

Ich versuche gerade tvstreamrecord 1.5.1 auf meinem DS216play mit DSM 6.2.3 zum Laufen zu bringen.
Als DVB-C Receiver habe ich einen HDHomerun (HDHR3-4DC).
Testweise habe ich einen Sender eingerichtet, eine Aufnahme klappt aber nicht:

Code:
2021-02-08 22:25:00.005    FFMPEG (http) record 'gngfnfn' called with:
2021-02-08 22:25:00.005    ['/volume1/@appstore/MediaServer/bin/ffmpeg', '-i', 'http://192.168.178.46:5004/auto/v101.ts', '-y', '-t', '59', '-loglevel', 'fatal', '-acodec', 'copy', '-vcodec', 'copy', '-loglevel', 'error', '/volume1/video/Aufnahmen/20210208222500 - gngfnfn.ts']
2021-02-08 22:25:05.059    FFMPEG record 'gngfnfn' ended with an error:b'[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n[h264 @ 0x1dc26a0] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x1dc26a0] decode_slice_header error\n[h264 @ 0x1dc26a0] no frame!\n/volume1/video/Aufnahmen/20210208222500 - gngfnfn.ts: Permission denied\n'


Es scheint Rechteprobleme mit dem Speicherort zu geben, den Ordner tvstreamrecord habe ich angelegt, er bleibt aber leer. Muss ich einen User mit entsprechenden Rechten einrichten? Mit VLC funktioniert der Stream. Was habe ich übersehen?

Gruß,
Sören
 

Pavion

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

die Version von MediaServer wird vermutlich nicht klappen. Ich empfehle Dir entweder ffmpeg per Hand zu installieren:
https://github.com/Pavion/tvstreamrecord#ffmpeg-supportoder die Version von SynoCommunity auszuprobieren.

Mit Rechten sollte es eigentlich keine Probleme geben, da 1.5.1 immer noch als Root läuft... wobei "Permission denied" schon irgendwie darauf hinweist. Versuche bitte einen anderen Pfad bzw. stelle sicher, dass der Pfad existiert.

Es könnte ähnliche Probleme mit dem Firewall von Synology geben: falls aktiv, schalte es zum Testen ab.

Alternativ kannst Du die Docker-Version installieren. Diese hat bereits die aktuellste tvstreamrecord und ffmpeg-Versionen dabei und sollte keine Rechteprobleme haben (ebenfalls im Readme oben beschrieben).

Gruß
Pav
 

plumeharry

Benutzer
Mitglied seit
08. Feb 2021
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Hallo Pavion,

Danke für die Tipps.

Ich habe ffmpeg von SynoCommunity genommen, die Aufnahme klappt jetzt.
Das Video sieht gut aus, trotzdem bekomme ich noch folgende Fehlermeldungen:

2021-02-09 19:30:00.463
FFMPEG record 'test' ended with an error:b'[h264 @ 0x971b90] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x971b90] decode_slice_header error\n[h264 @ 0x971b90] no frame!\n[h264 @ 0x971b90] non-existing PPS 0 referenced\n Last message repeated 1 times\n[h264 @ 0x971b90] decode_slice_header error\n[h264 @ 0x971b90] no frame!\n'
2021-02-09 19:25:00.005
FFMPEG (http) record 'test' called with:
2021-02-09 19:25:00.005
['/volume1/@appstore/ffmpeg/bin/ffmpeg', '-i', 'http://192.168.178.46:5004/auto/v101.ts', '-y', '-t', '299', '-loglevel', 'fatal', '-acodec', 'copy', '-vcodec', 'copy', '-loglevel', 'error', '/volume1/video/Aufnahmen/20210209192500 - test.ts']

Wie kann ich das korrigieren?

Gruß,
Sören
 

CaptManu

Benutzer
Mitglied seit
23. Feb 2021
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Hallo Pavion,

auf diesem Wege vielen vielen Dank für die tolle Implementierung und Bereitstellung des Pakets! Ich nutze es es auf meiner DS218+ mit DSM7. Die Beschreibung war für mich gut umsetzbar und funktioniert nun auch mit meiner Fritzbox 6490 gut.

Die Fritzbox kann 4 Streams bereit stellen. Wenn ich lediglich einen Stream aufzeichne, kommt genau eine *.ts Datei heraus und alles ist gut. Auch schon mehrere Stunden getestet und alles hat gepasst. Wenn ich versuche, mehrere Streams gleichzeitig aufzuzeichnen, fallen ganz ganz viele kleinere Schnipsel mit 5-15 Sekunden Länge heraus. Nach einer Stunde Test mit 4 Kanälen waren im Output Ordner in etwa 400 einzelne Schnipsel enthalten. Aber anscheind ist das ein Problem der Fritzbox, wie in Beitrag #1.002 geschrieben
 
Zuletzt bearbeitet:

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Hi Manu und danke :)

Ja, #1.002 ist weiterhin mein Kenntnisstand: bei neuer 2. Anforderung wird die 1. Aufnahme unterbrochen und ihr ffmpeg wartet 10 sek; nach 10 sek wird wieder der 1. Stream angefordert und schmeißt den 2. wieder für 10 sek raus...

Theoretisch kann es umgangen werden, indem separate Docker-Container (bzw. zusätzlich zur normalen Installation) verwendet werden, die mit eigenen Adressen im LAN stehen. Auf Docker'isch:

Code:
sudo docker network create -d macvlan -o parent=eth0 --subnet 192.168.0.0/24 --gateway 192.168.0.1 mynet
sudo docker run -d --publish 8030:8030 --network=mynet --ip=192.168.0.76 --name tsr76 pavion/tvstreamrecord
sudo docker run -d --publish 8030:8030 --network=mynet --ip=192.168.0.77 --name tsr77 pavion/tvstreamrecord

Hab soeben auf DSM7 in der Konsole getestet, funktioniert, wird auch in der GUI angezeigt.
Melde Dich gern, wenn Du Fragen dazu hast.

Gruß
Pav
 

MaxiTaxi44

Benutzer
Mitglied seit
02. Mrz 2021
Beiträge
10
Punkte für Reaktionen
0
Punkte
1
Hallo Pavion,
ich habe mich jetzt extra hier im Forum angemeldet, weil ich das Tool an sich echt wahnsinnig gut finde.

Leider läuft es bei mir noch nicht so ganz..
Grundsätzlich: Ich nutze DSM 7 und tvstreamrecord mit der Version 1.6.1. Das ganze läuft an einem MagentaTV-Anschluss.
FFMPEG ist installiert, wie in deinen Releasenotes zur DSM7-Version beschrieben. Ebenso ist Videostation auf dem System installiert, wobei das ja bei DSM7 nicht mehr notwendig wäre, wenn ich das richtig verstanden habe.

An meinem Rechner kann ich über VLC mit der Adresse den Stream öffnen und ohne Probleme abspielen.

Aktuell bekomme ich im Log folgende Nachricht:
2021-03-02 09:30:00.003FFMPEG (rtp) record '(02) ZDF' called with:
2021-03-02 09:30:00.003['/volume1/tvstreamrecord/ffmpeg/ffmpeg', '-i', 'rtp://87.141.215.251@232.0.10.234:10000', '-y', '-t', '299', '-loglevel', 'fatal', '-map', '0', '-c', 'copy', '/volume1/video/20210302093000 - _02__ZDF.ts']
2021-03-02 09:35:30.008FFMPEG record '(02) ZDF' ended
2021-03-02 09:35:33.011FFMPEG Record '(02) ZDF' had to be killed. R.I.P.
2021-03-02 09:35:33.011FFMPEG Record '(02) ZDF': termination may have failed

Die Testaufnahme läuft also ohne Fehler durch bricht aber am Ende plötzlich ab.

Ich habe auch dein Git-Issue gesehen, wo es darum geht, dass die rtp-Adresse umgebaut werden muss. Auch das habe ich versucht (also @232.0.10.234:1000 vorgezogen).
Hier kommt folgende Meldung:
Something went wrong with 'Test', retry 9/99 in 10 seconds -> nach einigen Versuchen dann der Abbruch.

Was mir aufgefallen ist: Die Netzwerknutzung ist trotz angeblich laufender Aufnahme quasi wie im Leerlauf der NAS. Es wird also scheinbar nichts aufgezeichnet.

Vielleicht hast du eine Idee, an sich fände ich das Programm nämlich super und so wie es hier klingt läuft es ja sehr gut :)

Viele Grüße
MaxiTaxi44

Edit:
Ich habe es mittlerweile geschafft über die udp-Adresse den Stream mit ffmpeg in der Konsole aufzuzeichnen. Das funktioniert und ist abspielbar. Lustigerweise frisst der VLC genau die gleiche Adresse nicht...
Natürlich habe ich dann auch in tvstreamrecord die udp-Adressen mal eingefügt allerdings erhalte ich dann wieder die Fehlermeldung, dass zu viele Versuche fehlschlagen:
2021-03-02 10:27:39.062['/volume1/tvstreamrecord/ffmpeg/ffmpeg', '-i', 'udp://@232.0.20.35:10000?sources=87.141.215.251', '-y', '-t', '140', '-loglevel', 'fatal', '-map', '0', '-c', 'copy', '/volume1/video/20210302102739 - Test2134.ts']
2021-03-02 10:27:44.336FFMPEG record 'Test2134' ended with an error:b'Cannot map stream #0:3 - unsupported type.\nIf you want unsupported types ignored instead of failing, please use the -ignore_unknown option\nIf you want them copied, please use -copy_unknown\n'
2021-03-02 10:27:44.337Something went wrong with 'Test2134', retry 4/99 in 10 seconds

Edit 2:
Nachdem es mir komisch vorkam, dass die Aufnahme in der Konsole geht, in tvstreamrecord aber nicht habe ich die erweiterten Logs aktiviert und siehe da.. "Permission denied" ist paar Mal aufgetaucht.
Ich habe jetzt den Speicherpfad direkt in den FFMPEG Ordner gelegt und siehe da... Es funktioniert problemlos. Lege ich den Speicherort wieder in "Videos" so geht wieder nichts mehr.
Ich vermute, dass DSM tvstreamrecord keine Rechte gibt in den Ordner zu schreiben. In der Konsole führt man FFMPEG aber ja als Admin aus und hat somit Schreibrechte für den gemeinsamen Ort "Videos".
Ich werde das noch genauer untersuchen aber scheinbar liegt es wirklich an Schreibrechten, die das Programm dann behindern und die Daten nicht speichern lassen...

Viele Grüße
MaxiTaxi44
 
Zuletzt bearbeitet:

Pavion

Benutzer
Mitglied seit
02. Feb 2013
Beiträge
530
Punkte für Reaktionen
7
Punkte
44
Hi Maxi und willkommen im Forum!

Bis ich soweit gekommen bin, Dir eine Antwort zu schreiben, hast Du ja selbst schon alles herausgefunden. Kurz zusammengefasst:
- wenn ffmpeg per Hand installiert ist, ist VideoStation nicht erforderlich;
- ja, bei Magenta muss die Adresse umgestellt werden und ja, geht dann nicht mit VLC;
- mit DSM7 kam eine neue Art Rechteverwaltung: bei der Installation wird nach einem Ordner gefragt und nur dieser Ordner ist dann für tvstreamrecord zugänglich. Weitere Ordner können (wahrscheinlich) dem User tvstreamrecord per Console freigegeben werden. Ich hatte schon überlegt, die Pfadänderung komplett zu verbieten, wollte es dann doch nicht zunageln. Falls es denn unbedingt video heißen soll, könntest Du tvstreamrecord deinstallieren, die Datenbank nach /volume1/video kopieren und beim Neuinstallieren den Ordner video vorgeben. Es würden keine Daten dabei gelöscht.
- wie in Deiner Ausgabe ersichtlich, musst Du ggfs. -ignore_unknown Parameter hinzufügen, um unnötige Streams auszuschließen.

Gruß
Pav
 
  • Like
Reaktionen: MaxiTaxi44

MaxiTaxi44

Benutzer
Mitglied seit
02. Mrz 2021
Beiträge
10
Punkte für Reaktionen
0
Punkte
1
Hi Pavion,

super trotzdem, wie schnell du antwortest!!!

Ja ich denke es läuft jetzt und werde mich die Tage mal mit dem Thema EPG-Aufnahme beschäftigen.

Ich glaube den -ignore_unknown Parameter brauche ich nicht mehr, zumindest habe ich aktuell keine Fehlermeldungen mehr im Log. Die einzige Meldung, die nach einer Aufzeichnung erscheint ist folgende:
Remaining time is less than fail-safe delta, sleeping...
Allerdings sind die Aufnahmen abspielbar und weisen keine Fehler auf.

Viele Grüße
Maxi