MKVToolNix

TodsDeath

Benutzer
Mitglied seit
17. September 2011
Beiträge
132
Punkte für Reaktionen
2
Punkte
18
Hallo zusammen,

ich habe das Wochenende über etwas Zeit gehabt mal mit spksrc von SynoCommunity rumzuspielen, in der Hoffnung ein Paket für die aktuelle Version von MKVToolNix erstellen zu können. Wie man an diesem Post unschwer erkennen kann, hat dies überraschenderweise sogar recht problemlos funktioniert. Ich konnte das Paket auf einer DS211j (88f6281) und einer DS414 (armadaxp) erfolgreich installieren und mkvmerge ausführen.

Bis auf die GUI (verständlicherweise weggelassen) wurde MKVToolNix vollständig kompiliert. Die Abhängigkeiten sind alle im Paket enthalten; andere Pakete oder ähnliches werden somit nicht vorausgesetzt.

Da für die Erstellung von MKVToolNix GCC >= 4.6 vorausgesetzt wird, mussten je nach Architektur unterschiedliche Toolchains zum Einsatz kommen:
DSM4.3: armada370, armadaxp, evansport
DSM5.0: 88f6281

Die Pakete lassen sich auch auf früheren Versionen von DSM installieren, ob sie dort auch funktionieren kann ich leider nicht sagen.

Die Dateien werden nach der Installation nach /usr/local/mkvtoolnix gelinkt. mkvmerge kann dann über /usr/local/mkvtoolnix/bin/mkvmerge aufgerufen werden.
Code:
DiskStation> /usr/local/mkvtoolnix/bin/mkvmerge -V
mkvmerge v7.3.0 ('Nouages') 32bit built on Oct 26 2014 15:20:57

DiskStation> /usr/local/mkvtoolnix/bin/mkvinfo -V
mkvinfo v7.3.0 ('Nouages') 32bit built on Oct 26 2014 15:20:57

DiskStation> /usr/local/mkvtoolnix/bin/mkvextract -V
mkvextract v7.3.0 ('Nouages') 32bit built on Oct 26 2014 15:20:57

DiskStation> /usr/local/mkvtoolnix/bin/mkvpropedit -V
mkvpropedit v7.3.0 ('Nouages') 32bit built on Oct 26 2014 15:20:57

Da dies mein erster (Cross-)Compile mit GCC überhaupt war, weiß ich nicht ob ich bei auftretenden Problemen großartig helfen kann. Da der ein oder andere in der Vergangenheit aber schon (erfolglos) versucht hat MKVToolNix auf seine DiskStation zu bekommen, wollte ich euch das Paket nicht vorenthalten.

Die Installation erfolgt ausdrücklich auf eigene Gefahr.

Download
 
Zuletzt bearbeitet:

xeno010

Benutzer
Mitglied seit
20. März 2015
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hallo TodsDeath,

vielen Dank für die Bereitstellung des MKVToolNix Tools.

Ich hätte da ein kleines anliegen. Könntest du eventuell das Cross/Makefile hochladen oder wenn möglich das komplette Paket?
Ich würde nämlich gerne das Paket für den Avoton kompilieren und ich glaub auch die SynoCommunity hatte Interesse an deinem Source (https://github.com/SynoCommunity/spksrc/issues/974)


Ich würde mich auch jeden Fall sehr darüber freuen, wenn Du dein Paket veröffentlichen könntest.


Vielen Dank
xeno010
 

TodsDeath

Benutzer
Mitglied seit
17. September 2011
Beiträge
132
Punkte für Reaktionen
2
Punkte
18
Hallo,

der Link im Eingangspost wurde aktualisiert, v7.7.0 sollte für alle unterstützten Architekturen verfügbar sein.

Leider hat sich beim Erstellen der alten Version ein kleiner Tippfehler eingeschlichen (Version 7.30 anstatt 7.3.0; zweiten Punkt vergessen), weshalb das alte Paket nicht geupgradet werden kann, sondern deinstalliert und anschließend neu installiert werden muss.

Source gibts auf Github, Pull Request zu SynoCommunity wird die Tage folgen.
 

xeno010

Benutzer
Mitglied seit
20. März 2015
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hallo,

super vielen Dank für den Source :)

Eine kleine Anmerkung zum installer.sh

Ich würde die 4 Tools nicht über Path einbinden, sondern über symlink.
Mein installer.sh Script sieht wie folgt aus:

Code:
#!/bin/sh

# Package
PACKAGE="mkvtoolnix"
DNAME="Mkvtoolnix"

# Others
INSTALL_DIR="/usr/local/${PACKAGE}"


preinst ()
{
    exit 0
}

postinst ()
{
    # Link
    ln -s ${SYNOPKG_PKGDEST} ${INSTALL_DIR}
    
    #*Put mkvtoolnix in the PATH
    mkdir -p /usr/local/bin
    ln -s ${INSTALL_DIR}/bin/mkvextract /usr/local/bin/mkvextract
    ln -s ${INSTALL_DIR}/bin/mkvinfo /usr/local/bin/mkvinfo
    ln -s ${INSTALL_DIR}/bin/mkvmerge /usr/local/bin/mkvmerge
    ln -s ${INSTALL_DIR}/bin/mkvpropedit /usr/local/bin/mkvpropedit

    exit 0
}

preuninst ()
{
    exit 0
}

postuninst ()
{
    # Remove link
    rm -f ${INSTALL_DIR}
    rm -f /usr/local/bin/mkvextract
    rm -f /usr/local/bin/mkvinfo
    rm -f /usr/local/bin/mkvmerge
    rm -f /usr/local/bin/mkvpropedit

    exit 0
}

preupgrade ()
{
    exit 0
}

postupgrade ()
{
    exit 0
}

Weil:
- PATH wird bei der deinstalltion nicht gelöscht bzw. zurückgesetzt
- Daraus folgt, dass bei einer reinstalltion der PATH zum mkvtoolnix zweimal eingebunden wird
- Symlink finde ich sauber, gerade weil sie bei der Deinstallation leicht wieder entfernt werden können.


Das Problem mit FLAC habe ich dahingehend gelöst, in dem ich die FLAC library auf Version 1.3.1 erhöht habe. Dadurch konnte beim kompilieren zu keinem Error.


Ich würde im cross/mkvtoolnix/Makefile noch die Boost libs mit angeben.

Code:
BOOST_LIBRARIES = filesystem regex system date_time

So das nicht alles kompiliert werden muss.

LG
xeno010
 

TodsDeath

Benutzer
Mitglied seit
17. September 2011
Beiträge
132
Punkte für Reaktionen
2
Punkte
18
Vielen Dank für die Anregungen.
Ich würde die 4 Tools nicht über Path einbinden, sondern über symlink.
[...]
- PATH wird bei der deinstalltion nicht gelöscht bzw. zurückgesetzt
Interessanterweise wird PATH durch installer.sh gar nicht geändert, trotz allem hast du Recht. Ich werde die Zeile demnach entfernen.
Was das Erstellen von Symlinks für die einzelnen Binaries angeht, teile ich Diaouls Meinung.

Das Problem mit FLAC habe ich dahingehend gelöst, in dem ich die FLAC library auf Version 1.3.1 erhöht habe. Dadurch konnte beim kompilieren zu keinem Error.
Werde ich auf jeden Fall im Hinterkopf behalten und ausprobieren. Jedoch ist es so, dass cross/flac nicht von mir hinzugefügt wurde, sondern schon im Repository vorhanden war und vermutlich bei anderen SPKs verwendet wird. Demnach sträube ich mich hinsichtlich eines Pull Requests in den Master von SynoCommunity einfach die Version zu erhöhen. Der Patch scheint mir weniger mögliche Nebenwirkungen zu haben.

Ich würde im cross/mkvtoolnix/Makefile noch die Boost libs mit angeben.
Werde ich umsetzen.
 

xeno010

Benutzer
Mitglied seit
20. März 2015
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hallo,

vielen Dank für deine Antwort.

Interessanterweise wird PATH durch installer.sh gar nicht geändert, trotz allem hast du Recht. Ich werde die Zeile demnach entfernen.
Was das Erstellen von Symlinks für die einzelnen Binaries angeht, teile ich Diaouls Meinung.

Ja du hast natürlich vollkommen Recht, irgendwie hat mein Kopf ein "export" davor gezaubert :D - Entschuldige bitte!
Vielen Dank für deinen Link, es ist echt eine schwierige bzw. eine Glaubens Frage.

Meiner Meinung nach - Symlinks Vor/Nachteile:
Vorteil:
- Kann automatisiert installiert und deinstalliert werden
- User muss noch der Installation keine Änderung mehr vornehmen
- Alle "Tools" auf einem Blick bzw. in einem Ordner
--- Ich kann also sofort sehen welche Tools eingebunden sind und muss nicht die PATH's durch gehen.
- Ich kann entscheiden welche Tools eingebunden werden
--- z.B.: Ich installiere OpenVPN. Im bin Verzeichnis von OpenVPN sind mehrere Tools hinterlegt z.B. auch openssl.
--- Wenn ich jetzt mein PATH in das bin Verzeichnis lege, wird auch openssl mit eingebunden, obwohl ich es eventuell an einer anderen Stelle schon eingebunden habe (z.B.: weil separat installiert)
--- Und schon wird es schwierig rauszufinden, welches openssl aufgerufen wird
--- Diese Verhalten kann ich mit Symlinks wunderbar steuern.

Nachteile:
- Durch die automatisierte Installation / Deinstallation können Manuel angepasste Links gelöscht/ geändert werden ohne, dass man es sofort mitbekommt.
- Konflikte können entstehen

Klar der User kann das natürlich auch manuell nach der Installation selber erledigen und kann dadurch noch selber entscheiden ob PATH oder symlink.

Wie gesagt es ist schwierig zu entscheiden. Ich (als Anwender) würde mich aber wundern, wenn ich das Paket installierte und auf die Konsole wechsle, dass nach der Installation nicht sofort die Tools funktionieren bzw. zur Verfügung stehen. Gerade weil einige "SynoCommunity" Pakete die Symlinks setzten (manche aber wiederrum auch nicht).

Werde ich auf jeden Fall im Hinterkopf behalten und ausprobieren. Jedoch ist es so, dass cross/flac nicht von mir hinzugefügt wurde, sondern schon im Repository vorhanden war und vermutlich bei anderen SPKs verwendet wird. Demnach sträube ich mich hinsichtlich eines Pull Requests in den Master von SynoCommunity einfach die Version zu erhöhen. Der Patch scheint mir weniger mögliche Nebenwirkungen zu haben.


Cross/flac wird zurzeit nur von cross/mpd aufgerufen und das Paket wird auch mit FLAC 1.3.1 kompiliert.
Müsstest du mal schauen wie du das am besten machst. Ich persönlich finde ohne Patch die bessere Lösung.

LG
xeno010
 

mandon

Benutzer
Mitglied seit
06. Februar 2016
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Sie können in der ds216play installiert werden mkvtoolnix Sie mit einem SPK tun können, wie sonst?
Dank
 

Bordi

Benutzer
Mitglied seit
24. Januar 2010
Beiträge
3.198
Punkte für Reaktionen
0
Punkte
0
Die Dateien werden nach der Installation nach /usr/local/mkvtoolnix gelinkt. mkvmerge kann dann über /usr/local/mkvtoolnix/bin/mkvmerge aufgerufen werden.
Ju, danke. Jetzt noch..

Rich (BBCode):
ln -s /usr/local/mkvtoolnix/bin/mkvmerge /usr/bin/mkvmerge

..und du kannst gleich mit mkvmerge aufrufen.

Rich (BBCode):
DiskStation> mkvmerge -V


Doch lass mich dich was Fragen: Weshalb nutzt du nicht FFmpeg, der wäre schon auf der DS installiert?
Rich (BBCode):
ffmpeg -i "concat:input1.ac3|input2.ac3|input3.mp4" -c copy output.mkv

  1. https://trac.ffmpeg.org/wiki/Concatenate#protocol
  2. http://www.synology-forum.de/blog.html?cp=22
 

mandon

Benutzer
Mitglied seit
06. Februar 2016
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Sie können mit spk und wenn nicht, wie in ds216play mkvtoolnix installiert werden?
Dank
 

Glemp

Benutzer
Mitglied seit
26. November 2013
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Moin @TodsDeath ! Ich habe gerade einen Wechsel auf die DS920+ gemacht. Dort läuft das Paket leider nicht mehr. Es kommt die Meldung

Diese Paket wird auf der Plattform von Synology NAS nicht unterstützt oder ist nicht kompatibel mit der atuellen DSM Version.

Auf beiden DiskStations läuft DSM 6.2.3-25426 Update 2

Die neue DS hat nun aber eine Celeron Prozessor (INTEL Celeron J4125). Daher vermute ich mal, dass es daran liegt.

Besteht die Möglichkeit ein neues Paket für diese CPUs zu erstellen?

Vielen Dank!
 
Zuletzt bearbeitet:

Glemp

Benutzer
Mitglied seit
26. November 2013
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Ich habe in der INFO der SPK x86_64 bei arch ergänzt und damit lässt es sich wieder installieren.
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten, denn dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit einem hohen technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive oder Themen fremde Werbung. Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.