Posts by Xcoder

    Dieser Patch hilft eventuell auch hier:

    Ist jetzt noch nicht ausführlichst geprüft...

    Position kann man aus dem Range Header im HTTP request des Players rekonstruieren. So könnte an eine beliebige Position gesprungen werden. Die Frage ist dann aber was passiert wenn diese Stelle noch nicht transcodiert ist. Wenn ffmpeg schon am laufen ist könnte man den Browser einfach warten lassen und hoffen, dass ffmpeg so weit ist bevor ein Timeout zuschlägt, oder man beendet ein laufendes ffmpeg und startet ein neuer der mit seek an die entsprechende Stelle vorspuhlt und erst ab da transcodiert. Und irgendwann muss ja der transcodierte contente wieder weg...

    Hallo, Aufnahmen stehen auf der ToDo Liste...


    Hatte da noch keine gute Idee wie das konzeptionell laufen sollte. Bei Live TV startet einfach ffmpeg und saugt vom streamdev-server solange wie vom Webbrowser Stream Segmente geholt werden. Wenn das 1 min lange nicht mehr passiert wird ffmpeg beendet. Oder wenn ein neuer Kanal angefordert wird wird ffmpeg auch neu gestartet.


    Beim Aufnahmen schauen könnte ffmpeg die ganze Aufnahme beginnen zu transcodieren. Da das bei schneller Hardware schneller als Echtzeit geht, könnte man im Player sogar begrenzt vorspulen, soweit wie ffmpeg halt schon transcodiert hat. Die Frage ist aber was passieren soll, wenn man längere Zeit auf Pause geht oder der Browser nichts mehr saugt weil der User anderswo hingesurft ist.


    Ideen wie das sich verhalten sollte sind gefragt!


    Gruss

    Hallo,


    Mit 2.4.1 werden hier massiv falsche Kanäle angelegt. Ich habe sat>ip von einem Sat und ein Cable OctopusNet. Beim Umschalten von einem C-Kanal auf eine Sat-Kanal wurden dann eine reihe Kanäle angelegt, die es so nicht gibt:


    Code
    1. svdrpsend LSTC | grep Energy
    2. 250-378 Energy Basel;upc:290000:M256:C:6900:0:2385=deu@3:0:0:1411:1:13:0
    3. 250-379 Energy Bern;upc:290000:M256:C:6900:0:2001=deu@3:0:0:1412:1:13:0
    4. 250-380 Energy Zürich;upc:290000:M256:C:6900:0:1425=deu@3:0:0:1413:1:13:0
    5. 250-1370 Energy Basel;upc:11052:HC23M5O35P0S1:S19.2E:22000:0:2385=deu@3:0:0:1411:1:13:0
    6. 250-1371 Energy Bern;upc:11052:HC23M5O35P0S1:S19.2E:22000:0:2001=deu@3:0:0:1412:1:13:0
    7. 250-1372 Energy Zürich;upc:11052:HC23M5O35P0S1:S19.2E:22000:0:1425=deu@3:0:0:1413:1:13:0
    8. 250-1522 Energy Basel;upc:10971:HC23M5O35P0S1:S13.0E:29700:0:0:0:0:1411:1:13:0
    9. 250-1523 Energy Bern;upc:10971:HC23M5O35P0S1:S13.0E:29700:0:0:0:0:1412:1:13:0
    10. 250-1524 Energy Zürich;upc:10971:HC23M5O35P0S1:S13.0E:29700:0:0:0:0:1413:1:13:0


    378 bis 380 sind korrekt. Ab 1370 ist Quatsch. Die drei letzten wurden soeben angelegt als ich auf eine 13E Sat Kanal umgeschaltet habe.


    Gruss, Xcoder

    Der Punkt ist, dass das Satip Protokoll die Satelitenpositionen einfach durchnummeriert. In der sources.conf von VDR definierst Du welche Position welcher Nummer entsprechen soll. Die channels.conf enthält die Position in Grad. Bei mir ist das also

    Code
    1. S13E 2 Eutelsat Hot Bird 13B/13C/13D
    2. S19.2E 1 Astra 1KR/1L/1M/2C

    Position 1 ist Astra auf 19.2E und Position 2 ist Eutelsat auf 13E. Wir ein Sender auf Astra angezappt wir im Satip Protokoll vom vdr-satip-plugin die Position eins gewählt (RTSP Protokoll src=1). Dan weis minisatip dass Du die 1 willst. Der Netceiver will aber wieder die Position in Grad. Ich habe in minisatip/netceiver.c dann folgende fixe Zuordnung definiert:

    Code
    1. int map_pos[] =
    2. { 0, 192, 130, 282, -50}; // Default sat positions: 19.2E, 13E, 28.2E, 5W

    Die 1 ist also fix Astra 1, 2 ist Hot Bird, 3 ist Astra 2 und 4 ist Eutelsat 5.


    Der Netceiver hat dann wiederum konfiguriert wie man von der Postion in Grad auf die Sat Position beim Multiswitch zuordnen soll. Das hängt dann halt davon ab welchen LNB du wo am Multiswitch angeschlossen hast. Da dies der Netceiver nicht wissen kann muss er konfiguriert werden.

    Ich habe den Netceiver damals noch mit der Reelbox konfiguriert. Wenn ich mich richtig erinnere ist auf dem Netceiver alles mit config Files definiert. Da kann man auch mit telnet einlogen und manuell rumfummeln...


    Habe leider keine bessere Lösung dafür.

    Ich habe ja damals die netceiver Erweiterung für minisatip geschrieben. Ist eine Weile her und ich habe es selber nicht mehr im Betrieb, aber schauen wir mal.


    minisatip sollte eigentlich standalone laufen. Voraussetzung ist, dass der Netceiver schon korrekt konfiguriert wurde und weis welche Sat-Positionen zu empfangen sind. Wenn minisatip mit netceiver kompiliert wurde, sollt es mit libmcli gelinkt sein:


    Code
    1. # ldd minisatip
    2. ...
    3. libmcli.so => /usr/local/lib/libmcli.so (0x00007f801e360000)
    4. ...

    libmcli sollte also installiert sein.


    mit der -n oder --netceiver Option definiert man das VLAN Interface auf welchem der Netceiver auch eingebunden ist. Bei Dir ist das wohl eth1:6. Daher sollte mit tcpdump -i eth1:6 IP6 Packete zu sehen sein.


    Was kriegst Du für Log-Meldugnen von minisatip? Wir der Netceiver detektiert?


    Gruss, Xcocer

    Kannst du noch einige Zeilen mehr posten. Bis hier war alles ok. Die Codec Meldungen sind von ffmpeg. Einige Sender senden zusätzliche Streams mit welchen ffmpeg nichts anfangen kann, ist kein Problem.


    Gelegentlich muss man einfach die Seite neu laden.

    Wie startet man einen Sendersuchlauf (erstellt eine channels.conf) unter Verwendung des SAT-IP-Plugins?

    Das habe ich noch nie benötigt. Die Kanalaktualisierung findet wenn aktiviert die Sender. Gelgetlich kommt mal eine Neue Frequenz. Dann einfach einen bestehenden Kanal kopieren und die Frequenz anpassen. Sobald man darauf zappt, werden neue Sender automatisch erkannt.

    Sendersuchlauf auf Fritzbox hört sich nach Blödsinn an. Ein SAT-IP Server kennt keine Sender. Die Sender muss der Client kennen, also der TV oder der VDR. Aber gibt es für das Böxlein keine Anleitung vom Hersteller?


    Und ob verschlüsselt oder nicht ist einem SAT-IP Server egal. Der liefert einfach die gewünschten Datenströme. Die Entschlüsselung läuft immer auf dem Client.