Quantcast
Channel: tvheadend – Finn Christiansen

Videos mit FFmpeg schneiden

$
0
0

Ich nutze OpenELEC mit XBMC und Tvheadend und nehme hin und wieder auch eine Sendung im Fernsehen auf. Tvheadend ist so konfiguriert, dass es 5 Minuten eher mit der Aufnahme beginnt und 5 Minuten länger aufnimmt. Das passt meistens ganz gut und es fehlt nichts von der Sendung, wenn sie um einige Minuten versetzt ausgestrahlt wird.

Um mir das Vorspulen am Anfang zu ersparen, schneide ich die Aufnahme noch mit FFmpeg, danke an vollnixx für die Inspiration. Anfangs habe ich diverse graphische Video-Editoren versucht zu verwenden, aber das war nicht sehr von Erfolg gekrönt. Außerdem möchte ich das Video nicht neu kodieren müssen, sondern lediglich ein paar Minuten am Anfang und Ende entfernen. Reencoding möchte und benötige ich einfach nicht, mir geht es auch nicht um extreme Schnittgenauigkeit, darum schaue ich einfach mit einem Videoplayer nach, ab wann die eigentliche Sendung beginnt und wie lange sie geht, dann kommt FFmpeg ans Werk:

ffmpeg -i input.mkv -vcodec copy -acodec copy -sn -ss 00:04:30.000 -t 01:30:00.000 output.mkv

Die option -sn entfernt die Untertitel, -ss gibt die Startzeit an und -t die Länge des zu behaltenen Videomaterials. Dieser Befehl entfernt also die ersten 4 Minuten und 30 Sekunden und spukt einen 90 minütiges Video aus. Da dieser Befehl auf meinem Rechner nur einige Sekunden ausgeführt wird, bessere ich nach dem ersten Durchlauf manchmal noch 1-2 mal nach, falls es nicht allzu gut gepasst hat. Einfach, schnell und effektiv.


Tvheadend unter Debian Wheezy installieren

$
0
0

Tvheadend ist ein TV-Streaming Server, welcher unter anderem DVB-S(2)/T/C unterstützt und die TV-Programme über das Netzwerk anderen Geräten zur Verfügung stellen kann. In meinem Fall sind die anderen Geräte zwei OpenELEC Installationen, die nicht über eine eigene TV-Karte verfügen. Zufällig habe ich ein bisschen alte Hardware gefunden, mit der ich schnell einen Tvheadend Server gebaut habe.

Debian Installation

Ich habe mich für ein Debian Wheezy 7.8 und nicht das aktuelle Jessie 8.0 entschieden, da für diese Distribution Paketquellen für Tvheadend bereitgestellt werden. Installtion und Updates können also bequem über die übliche Paketverwaltung durchgeführt werden.

Da auf diesem Server ausschließlich Tvheadend laufen soll und meine Internetverbindung akzeptabel ist, reicht das Netinstall Image (debian-7.8.0-amd64-netinst.iso) von Debian aus. Alternativ funktioniert natürlich auch das größere Image, die Downloads werden auf cdimage.debian.org bereitgestellt.

Bei der Installation habe ich die grafische Oberfläche abgewählt und den SSH-Server aktiviert, da ich alle weiteren Schritte nach der Grundinstallation bequem per SSH erledigen möchte. Die Partitionierung ist ebenfalls simpel gewählt, es existieren nur eine Root Partition und eine Swap Partition.

Tvheadend installieren

Neben der Möglichkeit, Tvheadend aus dem Sourcecode selbst zu komilieren, werden auf tvheadend.org auch Apt-Repositories angeboten. Diese werden wie folgt eingebunden:

# Curl wird zum Holen des GPG Keys benötigt und ist wahrscheinlich noch nicht installiert.
# Alle Befehle hier müssen natürlich als Root User ausgeführt werden.
apt-get install curl
echo "deb http://apt.tvheadend.org/stable wheezy main" > /etc/apt/sources.list.d/tvheadend.list
curl http://apt.tvheadend.org/repo.gpg.key | apt-key add -
apt-get update
apt-get install tvheadend

Das war auch schon fast alles. Bei der Installation von Tvheadend wird auch gleich nach den Login Daten für die Administration gefragt, welche später für die Weboberfläche genutzt werden.

Die passenden IPTables Regeln habe ich auch gleich in die /etc/iptables/rules.v4 eingefügt.

Das Tvheadend Webinterface

Die IP Adresse oder den Hostnamen des Tvheadend Servers sollte man natürlich kennen, bevor er in die Ecke gestellt und das Satelliten-Kabel angeschlossen wird. Das Webinterface für die Konfiguration wird per HTTP über den Port 9981 aufgerufen, also beispielsweise http://tvheadend:9981 oder http://192.168.1.8:9981, je nach Netzwerkkonfiguration.

Im ersten Schritt habe ich die Deutsch (German) als Standardsprache ausgewählt, auch wenn ich mir nicht ganz sicher bin, an welchen Stellen diese Einstellung Verwendung findet.

tvheadend_01_default_language

Im nächsten Schritt navigiert man zu dem Punkt “Configuration – DBV Inputs – TV Adapters” und wählt die verbaute TV-Karte aus. Man setzt die auf dem Bild zu sehenden Haken (Enabled, Autodetect muxes, Idle scanning) und speichert die Einstellung.

tvheadend_02_tv_adapters

Nun klickt man auf den Button “Add DVB network by location” und wählt den gewünschten Satelliten aus und die “Default” Satelliten-Konfiguration. Für das in Deutschland übliche Fernsehprogramm ist das Astra 19.2 E.

tvheadend_03_dvb_network

Was jetzt geschieht, kann eine Weile dauern, da die Frequnzen nach weiteren Transpondern abgesucht werden. Jeder Transponder hat seine eigene Frequenz und Übertragungskonfiguration und stellt einige Sender bereit. Den Status kann man im rechten Bereich des Fenster sehen. Der Vorgang ist abgeschlossen, wenn der Wert “Muxes awaiting initial scan” auf 0 steht. Mit meiner DVB-S Karte habe ich 111 Muxes (Transponder) und 1530 Services (Kanäle) gefunden.

Nun können die gefunden Services den passenden Kanälen zugewiesen werden. Ein Klick auf den Button “Map DVB services to channels” staret diesen Vorgang. Dieser Schritt wird leider manchmal übersehen, was im Kodi-Client dann für einige Verwirrung sorgen kann.

tvheadend_04_channel_mapping

Jetzt kann man beobachten, wie nach und nach die Kanäle im Punkt “Configuration – Channel / EPG” auftauchen. Wenn auch dieser Vorgang abschlossen ist, können den Kanälen manuell Nummern zugewiesen werden. Ich mache das für etwa 2 Dutzend Kanäle und der Rest ist mir reichlich egal. Die nummerierten Kanäle werden dann in Kodi entsprechend ihrer Reihenfolge zuerst angezeigt.

tvheadend_05_channel_mapping

Abschließendes

Noch ein kleiner Tipp: Am unteren Bildschirmrand kann das Logging von Tvheadend ausgeklappt werden. Damit lässt sich verfolgen, was Tvheadend gerate tut und man weiß beispielsweise, ob das Channel-Mapping bereits abgeschlossen ist oder nicht.

tvheadend_06_logging

Leider sorgt die Tvheadend Weboberfläche für eine hohe CPU Beanspruchung durch den Browser, weshalb man diese vielleicht lieber schließen möchte. Mit

tail -f /var/log/syslog
  kann der aktuelle Status ebenfalls nachverfolgt werden.

Tvheadend Server automatisch herunterfahren und wieder aufwachen

$
0
0

Nachdem ich nun seit Kurzem wieder über einen Tvheadend Server verfüge, nutze ich diesen hauptsächlich zum Aufnehmen einiger Sendungen. Ich schaue kaum Fernsehen und daher muss der Tvheadend Server auch nicht permanent laufen. Ich habe ein kleines Script gebastelt, welches sich darum kümmert.

Das Script ist in Python geschrieben und wird regelmäßig per Cronjob ausgeführt. Wenn keine Clients verbunden sind und keine Aufnahmen anstehen, fährt es den Server herunter. Falls Aufnahmen geplant sind, wird die Startzeit der ersten Aufnahme abzüglich ein paar Minuten als Wakeup-Zeit gespeichert und der Server fährt herunter.

Falls keine Aufnahmen geplant sind, wird Heruntergefahren und vorher eine Wakeup-Zeit 24 Stunden später gesetzt. Das sorgt dafür, dass der Server täglich ein wenig läuft, um z.B. die EPG Informationen zu aktualisieren. Falls in den nächsten Minuten eine Aufnahme ansteht, wird das Herunterfahren nicht ausgeführt, da es sich nicht lohnen würde.

Außerdem fährt das Script den Server nicht herunter, falls man gerade per SSH verbunden ist. Von Solchen Scripten gibt es zwar schon einige, aber ein eigenes ist manchmal schneller geschrieben, als dass man ein für einen selbst pefekt passenden gefunden hat. Für Interessierte habe ich das Script tvh-auto-power.py bei GitHub veröffentlicht. Ein bisschen Readme ist auch enthalten, eine Authentifizierung kann ebenfalls verwendet werden. Viel Spaß damit.

NOW TV lässt Kodi User und andere Streamer in die Röhre schauen

$
0
0

In zwei noch gar nicht so alten Beiträge zum Thema NOW TV habe ich von der Möglichkeit erzählt, die Streams der Mediengruppe RTL Deutschland (unter anderem RTL, RTL II, VOX, Super RTL, …) im Mediacenter Kodi zu streamen. Inzwischen gibt es wieder Änderungen seitens RTL, die erneut zu Problemen führen.

Momentan ist es weder möglich, aktuelle Folgen mit dem offiziellen Addon NOW TV oder RTL NOW aus dem Bromix Repository zu schauen. Eine Fehlermeldung mit dem Inhalt Ein/mehrere Inhalt(e) konnte(n) nicht wiedergegeben werden. Für Details bitte Logdatei einsehen. sagt ziemlich deutlich, dass dort etwas nicht funktioniert.

Manchmal ist solch ein Problem nur von kurzer Dauer, da beispielsweise die Server ein wenig überfordert sind oder serverseitig etwas geändert wurde und das Addon noch angepasst werden muss. Ein etwas ungutes Gefühl hatte ich allerdings und ich bin auf folgende Aussage des Addon-Entwicklers Bromix aus dem Kodinerds Forum gestoßen:

Fakt ist, es ist ADOBE FAXS (nicht ADOBE ACCESS) und somit mit KODI nicht abspielbar. Siehe dazu bitte auch hier (wie schon erwähnt)

Adobe FAXS steht für Adobe Flash Access und ist, laienhaft gesprochen, ein Inhaltsschutzmechanismus, Kopierschutzmechanismus oder DRM-System. Über Sinn und Unsinn lässt sich streiten, aber nachdem ich NOW TV bzw. damals noch RTL NOW nicht mehr im Browser abspielen konnte (scheinbar braucht man dafür einen Addon-freien Browser auf Windwos Basis), bin ich auf das bequeme Streaming in Kodi umgestiegen. Als netter Nebeneffekt entfällt in den Kodi Addons auch die Werbung, welches aber nicht die eigentliche Motivation für die Installation des Addons war.

Im Browser erschien zwar manchmal Werbung, die nicht wirklich akut gestört hat, aber irgendwann war die Werbung der einzige Inhalt, der überhaupt noch abgespielt werden konnte. Klar, dass man dann nach Alternativen sucht.

Eine Lösung für dieses Problem scheint es im Moment und vermutlich auch in nächster Zeit nicht zu geben. Da NOW TV bei mir auch im Browser nicht mehr funktioniert, bin ich glücklich, inzwischen wieder einen Tvheadend Streaming Server zu besitzen. Diese geniale Software verwandelt im Prinzip jeden alten PC mit einer TV-Karte in einen digitalen Videorekorder mit Weboberfläche, der sich wunderbar in Kodi integrieren lässt. Eine Gemeinsamkeit mit der VHS Videokassette hat es sogar auch: Die Werbung lässt sich wunderbar durch Vorspulen überspringen.

Die Einführung und Verschärfung der DRM Mechanismen bzw. des Kopierschutzes seitens der Mediengruppe RTL Deutschland haben also dazu geführt, dass ich weniger Werbe schaue. Das war sicherlich der gewünschte Effekt, weshalb es jetzt meiner Meinung nach Beförderungen bei RTL hageln sollte.

Tvheadend empfängt nach Upgrade keine Sender mehr

$
0
0

Nach einer routinemäßigen Aktualisierung der Pakete auf meinem auf Debian basierenden Tvheadend Server habe ich ein Problem festgestellt. Da ich das Tvheadend Repository eingebunden habe, gab es neben den üblichen Debian-Paketupdates auch eine Aktualisierung für Tvheadend selbst. Mit einem Versionssprung von 3.4.x auf 4.0.x sind die Änderungen und Neuerungen an Tvheadend recht umfangreich. Auf den ersten Blick sind mir nur die Änderungen im Tvheadend Webinterface aufgefallen, die an sich einen positiven Eindruck hinterlassen. Allerdings konnte ich nach dem Upgrade keine TV Kanäle mehr empfangen.

Es war mir nicht mehr möglich, eine Aufnahme zu starten oder einen Kanal einzuschalten. Das Log-Fenster der Tvheadend Weboberfläche meldete den Fehler „No free TV adapter“, was in diesem Fall ein guter Hinweis war. Nach ein wenig Suchen und Probieren habe ich entdeckt, dass die TV Karte noch einem DVB-S Netz zugewiesen werden muss. Der folgende Screenshot zeigt die Stelle, an der diese Zuweisung vorgenommen werden kann.

tvheadend_4_network_settings

Man beachte oben rechts den Bereich „Basic Settings“, hier kann der Karte ein Netz zugewiesen werden. Für mehrere Karten und mehrere Satelliten-Netze ist das sicherlich eine sinnvolle und praktische Einstellung, ich war aber nach dem Update ein wenig verwirrt, da ich diese Einstellungsmöglichkeit bisher nicht kannte. Vermutlich geht es nicht nur mir so.

Tvheadend Auto-Shutdown-Wakeup Script für Version 4.x angepasst

$
0
0

Tvheadend gibt es nun bereits länger in der Version 4, vor ein paar Wochen wurde auch auf die Version im Tvheadend Repository aktualisiert. Nach ein paar kleinen Anfangsschwierigkeiten beim Empfang läuft inzwischen alles ganz rund. Nun habe ich Zeit gefunden, mein Tvheadend Auto-Shutdown-Wakeup Script zu aktualiseren.

Die URLs der API haben sich in der neuen Version ein wenig geändert und darauf nimmt das Skript nun Rücksicht. Die aktuelle Version kann in meinem tvh-auto-power GitHub Repository eingesehen und heruntergeladen werden.

Hinzugekommen ist nun auch ein simpler Debug-Modus, der durch das Anhängen des Parameters

-d
  eingeschaltet werden kann:
tvh-auto-power.py -d
Shutdown now allowed, there are some SSH, Tvheadend webinterface or HTSP connections.
Setting wake up time to 2016-01-04 17:15:00
shutdown allowed: False

Das ist nichts Besonderes, aber so weiß man in etwa, was das Skript tut und warum es dies tut.

Tvheadend shutdown-wakeup Script aktualisiert

$
0
0

Ich schaue zwar kaum Ferneshen, aber hin und wieder nehme ich eine Sendung oder einen Film auf. Hierzu nutze ich einen kleinen Rechner mit einer DVB-S2 Karte (TechnoTrend Budget S2-4200 Twin), Debian und Tvheadend. Die Konfiguration und Planung der Aufnahmen können über ein Webinterface vorgenommen werden und die Sendungen selbst können z.B. über Kodi gesehen werden. Die Autorec-Funktion ermöglicht es, eine Sendung automatisch aufzunehmen, wenn sie läuft.

Damit der Rechner nur dann läuft, wenn eine Aufnahme ansteht, habe ich tvh-auto-power.py geschrieben. Dieses kleine Python Script wird regelmäßig als Cronjob ausgeführt und erfüllt zwei Aufgaben:

  1. Der Rechner wird automatisch heruntergefahren, wenn folgende Bedingungen erfüllt sind:
    • Keine Aufnahme läuft oder gleich beginnt
    • Keine Verbindung (z.B. Kodi Client, Webinterface oder SSH) aktiv ist
    • Der Rechner bereits für eine gewisse Zeit läuft (min_uptime, damit nach mauellem Hochfahren nicht sofort wieder heruntergefahren wird)
  2. Vor dem Herunterfahren wird die Zeit für das nächste automatische Hochfahren gesetzt
    • Wenn eine Aufnahme geplant ist, wird diese Zeit (minus ein paar Minuten Puffer) verwendet
    • Wenn keine Aufnahme geplant ist, wird nach 24 Stunden hochgefahren (z.B. damit EPG aktualisiert werden kann und Autorec neue Sendungen findet)

Leider unterstützt nicht jeder Rechner automatisches Hochfahren (Stichwort rtc wakeup), manchmal ist diese Option noch im BIOS zu aktivieren. Das Script nutzt jetzt neuerdings

rtcwake
 , welches unter Debian per
apt-get install rtcwake
installiert werden kann. Ich hoffe das Script erfüllt seinen Zweck und sorgt für reibungsloses Hoch- und Herunterfahren.