decodieren - schneiden - mp4 erstellen - umbenennen

synOTR-128

Beschreibung:


SynOTR ist ein scriptbasiterter Workflow für TV-Aufnahmen von onlineTVrecorder (OTR) auf einer Synology Diskstation (x86 / ARMv7 CPUs). Es wurde gezielt auf Einfachheit hin entwickelt - wer einen Dateipfad in eine Textdatei eintragen kann, sollte hiermit zurecht kommen :-)
onlineTVrecorder (OTR) ist der freie Videorecorder im Internet, der rund um die Uhr ALLE Sendungen ALLER Sender aufzeichnet (naja, auf jeden Fall viele … ;-) ). Es werden über 100 TV-Sender aus Deutschland, USA, UK und anderen Ländern aufgenommen. Du kannst diese Filme später gratis herunterladen.

Folgende Aufgaben werden automatisch abgearbeitet:

  • Verschlüsselte .otrkey-Dateien dekodieren
  • automatische AC3-Tonspurintegration (BETA)
  • Filme schneiden (Quelle: cutlist.at)
  • Filme nach eigenen Regeln umbenennen
    otr-serien.de_100px

    Serien werden automatisch erkannt und der Sendungsname in einem Videostation konformen Format umbenannt (Serientitel.S01.E01 Episodentitel … [individualisierbar]) ==> VIELEN DANK an Daniel Dieth von www.otr-serien.de für das zur Verfügungstellen seiner Website und seine Unterstützung.
    Bitte unterstützt die Seite www.otr-serien.de. Über die Seite lässt es sich auch sehr einfach nach bestimmten Episoden suchen. Ihr habt eine ausgestrahlte Serienepisode, die dort nicht automatisch erkannt wurde? Dann gebt doch bei der betroffenen Episode eine Rückmeldung ab.

    thetvdb_100px
    Viele weitere Serieninformationen stammen darüber hinaus von der Website www.thetvdb.com. Bitte unterstützt diesen kostenlosen Service, indem ihr nach Möglichkeit Informationen und Grafiken beitragt und ergänzt.

    Sollten keine Serieninformationen zu einer Sendung gefunden worden sein, so wird die Standardumbenennung verwendet und die Infos in einer Datenbank gesichert. Werden entsprechende Informationen auf otr-serien.de ergänzt werden, so wird nachträglich die Standardumbenennung in die Serienumbenennung vorgenommen (Suchzeit derzeit 14 Tage).
  • Konvertieren der .avi’s in native .mp4’s (Mac OS tauglich)
    Für den ersten Programmaufruf ist zu beachten, dass alle AVIs im Zielordner konvertiert werden, was eine entsprechende Zeit erfordern kann. Das lässt sich vermeiden, wenn man in der Konfiguration einen Arbeitsordner definiert (Variable: WORKDIR="/Pfad/").

Lässt man sich fertige Aufnahmen per FTP-Push (z.B. Serien) auf das NAS übertragen, hat man ohne Zutun fertig geschnittene Aufnahmen.

Mein Ziel war es, jetzt eine kompakte Lösung anbieten zu können, die für jedermann (vor allem auch Einsteiger) einfach nutzbar sein soll, ohne dass sich jeder in die Materie einarbeiten muss. Es ist also nichts an Skripten zu ändern, noch müssen zusätzliche Programme installiert werden (es ist kein IPKG notwendig - wenn es so funktioniert, wie ich mir das vorstelle). Alle entsprechenden Programme sind in dem Paket enthalten. Derzeit wird zum schneiden avisplit/avimerge aus Transcode verwendet. Avisplit wird ab Version 2.2 durch avcut ergänzt. Avcut schneidet im Gegensatz zu avisplit framegenau, allerdings ergeben sich daraus erhöhte Anforderungen an die CPU und RAM (min. installiert: 1GB für HD-Aufnahmen und 500MB für HQ-Aufnahmen).



Verwendung / Vorbereitung (3 kleine Schritte bis zum Ziel):


  • Binde den Paketserver cphub.net in deine Diskstation ein (Tutorial)
    => Logge dich dazu im DSM ein und öffne das Paketzentrum
    => klicke auf "Einstellungen" > "Paketquellen" und trage hier einen beliebigen Namen und unter "Ort" die Serveradresse "https://www.cphub.net/" ein
    => setze evtl. unter "BETA" einen Haken
  • Installiere jetzt im Paketzentrum unter "Communtity" das Paket "synOTR"
  • Öffne synOTR und gehe auf "Einstellungen":
    Hier sind die OTR-Zugangsdaten für das Decodieren, den Quellordner mit den .otrkey’s, den Zielordner für die fertigen Filme einzutragen sowie einen Arbeitsordner für die temporären Filme (WORKDIR) einzutragen.
    Jeder der oben genannten Teilschritte kann aktiviert, oder deaktiviert werden
    Des weiteren kann man sich ein Muster für den gewünschten Zieldateinamen zusammenstellen.
    Speichern nicht vergessen
  • Für den automatischen Ablauf ist das Script in den DSM-Aufgabenplaner einzutragen:
    => (ab Version 3.9.3 kannst du den Zeitplaner in synOTR verwenden)
    => Erstelle einen neuen Task im Aufgabenplaner (DSM-Systemsteuerung > Aufgabenplaner > Erstellen > Benutzer-definiertes Script) und füge den Pfad "/usr/syno/synoman/webman/3rdparty/synOTR/synOTR-start.sh" ein.
    => Verwende als Benutzer "root" um Aufgabenbenachrichtigungen per Piep oder PUSH-Nachrichten erhalten zu können.
    => erstelle einen gewünschten Zeitplan (z.B. stündlich)
    (Die Logfiles - sofern in der Konfiguration.txt aktiviert - befinden sich im Unterordner „_LOGsynOTR“ des Dekodierordners und können jederzeit gelöscht werden.)


Download


Nutze wie oben beschrieben das Paketzentrum mit der Paketserveradresse "https://www.cphub.net/". Du kannst das Paket auch manuell herunterladen (klick), allerdings stehen dir so keine automatischen Updates zur Verfügung
Die bisherige Skriptversion wird nicht weiter gepflegt. Verwendet daher bitte das aktuelle Paket im Paketzentrum. Die bisherigen Einstellungen lassen sich ab der Version 4.0.2 bequem importieren.
(synOTR-Version >= 3.0.0 benötigt DSM >= 6.0 oder den Aufruf über eine separate bash [liegt bei])



BENUTZUNG AUF EIGENE GEFAHR
BEI PROBLEMEN ODER FRAGEN BITTE DAS FORUM VERWENDEN.
Bitte berichtet über funktionierende Modelle im Forum (besonders ARM)

getestete Modelle:


  • x86_64: DS713+ (DSM 5.1, 5.2), DS716+ (DSM 5.2, 6.0, 6.1) ==> weitere bekannte Installationen: DS710+, DS712+, DS412+, DS1512+, DS1812+, DS1513+, DS1813+, DS415+, DS1515+, DS1815+, DS216+, DS216+II, DS716+II, DS916+, DS1517+, DS218+, DS718+, DS918+, DockerDSM (sicherlich auch: DS2413+, RS812+/RS812RP+, RS2212+/RS2212RP+, RS2414(RP)+)
  • i686: DS214play (DSM 5.1, 5.2, 6.0) ==> weitere bekannte Installationen: DS415play
  • ARMv7: DS214, DS116 (DSM 6.0) ==> weitere bekannte Installationen: DS414, DS214+, DS115, DS215j, DS216j, DS216play
    Für die Armada 370 CPU fehlt mir noch die passende libcurl.so Library (wahrscheinlicher Fehler). Somit funktioniert dort der OTRdecoder nicht (DS213j, DS114, DS214se, EDS14, RS214, DS414slim, DS115j, DS216se)

ToDo (dazu brauche ich Unterstützung):


Design / GUI


Du kennst dich mit HTML/Javascript aus und hast Lust synOTR zu unterstützen? Das wäre wirklich klasse!
Neben ein paar kleineren Umsetzungen ist es mein größtes Ziel, eine Cutlisterstellung zu implementieren (ich dachte da an mediaelement.js als Grundlage …). Außerdem wäre eine Cutlistauswahl per GUI sehr nett. Wenn du dich angesprochen fühlst, so schreibe mir einfach eine Mail. Ich freu mich :-)

Hardwaretranskodierung


Das framegenaue Schneiden mit avcut ist sehr rechenintensiv. Da kann das Schneiden eines HD-Films auf der DS716+ schon mal 20 Minuten dauern. Da avcut auf ffmpeg aufbaut - habe ich hier noch das Ziel, dass das zugrundeliegende ffmpeg die Hardwaretranskodierung der DSen nutzen kann (Intel Quick Sync Video / Braswell CPU). Das sollte die Schnittgeschwindigkeit signifikant erhöhen. Aufgrund meiner sehr beschränkten Kompiliererfahrung ist mir das noch nicht gelungen. (Die Qualität der Schnitte wird man erst in einem Livetest prüfen können.)
JensB hat hier [LINK] schon eine schöne grundlegende Anleitung zum Bauen eines statisch gelinkten avcut geschrieben. Das muss um nachfolgende Schritte ergänzt werden. Auf Crosskompilierung kann in diesem Fall verzichtet werden.
Zunächst benötig man die Intel-Treiber. Entweder so:
  • In CentOS 7.1 64 bit (reicht eine VM) Intel Media Server Studio für Linux installieren [LINK]
Oder man greift auf die vorgefertigte Lösung:
  • mfx_dispatch von lu-zero [LINK]
Dann ==>
  • ffmpeg mit den zusätzlichen Parametern “--enable –libmfx –enable-nonfree” bauen [LINK]
  • avcut-Sourcen laden und in avcut.c die Zeile
    "encoder = avcodec_find_encoder(dec_cctx->codec_id);"
    mit der Zeile
    "encoder = avcodec_find_encoder_by_name("h264_qsv");"
    ersetzen
  • avcut bauen




Support: