Nummer Serie Automatische Konvertierung mit ffmpeg auf der DiskStation (ARM)

Aller Geräte der Nummer-Serie (ohne j, + und xs Zusatz). Geräte für Privatanwender bis hin zu Firmenarbeitsgruppen
Status
Für weitere Antworten geschlossen.

CutePoisonX

Benutzer
Mitglied seit
01. Feb 2013
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hallo Leute!

Ich hab vor Kurzem ein Programm geschrieben, das mittels selbst definierter Preferenzen einen Ordner überwacht und je nach Einstellungen Videos in ein Format konvertiert, das vom Benutzer festgelegt wird.
Keine Ahnung ob es sowas ähnliches schon gibt, jedenfalls habe ich dazu im Web nichts gefunden. Hab das Programm auch selbst nicht gerade ausgiebig getestet, deshalb kann es auch sein, das der ein- oder andere Fehler auftritt. Falls jemand Interesse hat, kann er es jedenfalls einmal ausprobieren ;).
Normalerweise müsste man es auch mittels Cron zeitlich steuern können - das habe ich aber noch nicht probiert.

Das Programm habe ich an diesen Post (kompiliert auf einer DS213) angehängt. Wichtig: Man braucht dazu ffmpeg, ffprobe und (optional) qt-faststart. Die Version von ffmpeg muss zusätzlich noch die "neue Syntax" verstehen (z.B. -c:v:0). Leider tut das meiner Erfahrung nach weder die Version, die vorinstalliert ist, noch die Version, die man mittels ipkg laden kann. Deshalb hier ein kleines Tutorial wie man ein neues ffmpeg auf der DiskStation (ARM Marvell-Kirkwood) kompilliert. Falls es schon eine solche Anleitung gibt, bitte melden. Ich jedenfalls habe noch nichts im Web dazu gefunden...
Ich übernehme keinerlei Verantwortung falls durch das Tutorial oder das Programm irgendwelche Schäden entstehen oder sonst etwas unvorhergesehenes passiert. Das Tutorial beruht auf meinen Erfahrungen und hat bei mir funktioniert.

Kompillierung von ffmpeg
Hier als Beispiel habe ich noch libx264 hinzugefügt...
Ein Video mit h264 - codec dauert zwar ewig zu konvertieren, für kleinere Homevideos ist das aber trotzdem allemal nützlich...

1) Installieren von ipkg auf der DS (darauf achten, das man das richtige bootstrap installiert und das "Herunterfahren- Skript" ordnungsgemäß angepasst ist)
Es gibt unzählige Anleitungen dazu im Web auch hier im Forum; hier sind zwei sehr gute:
http://forum.synology.com/wiki/index.php/Overview_on_modifying_the_Synology_Server,_bootstrap,_ipkg_etc
http://www.synology-wiki.de/index.php/IPKG
2) Ist ipkg einmal ordnungsmäßig installiert, muss "optware-devel" installiert werden. Das macht man mit:
Rich (BBCode):
ipkg install optware-devel
3) nun noch git und bash installieren:
Rich (BBCode):
ipkg install git
ipkg install bash
Ich habe alles in den Ordner opt/ geladen. Weiß jetzt gerade nicht mehr ob das der default installationsordner ist. Gegebenfalls einfach nachprüfen ob sich bash in opt/bin/ befindet...

4) Bevor ffmpeg kompilliert wird, müssen noch alle libraries kompiliert werden, die man braucht. Hier gezeigt mit libx264. Bei anderen funktioniert es aber ebenso. Einfach die Libraries die man benötigt downloaden. Libx264 bekommt man hierher:
Rich (BBCode):
git clone git://git.videolan.org/x264
5) Folgenden Konsolenbefehl im Verzeichnis von x264 ausführen:
Rich (BBCode):
sed -i 's/^#!.*$/#!\/opt\/bin\/bash/g' configure version.sh
(falls sich bash nicht in opt/bin/ befindet, den Pfad entsprechend anpassen...)

6) Nun richtig konfigurieren:
Rich (BBCode):
sh configure --prefix=/opt --enable-shared --disable-asm
7) Dann noch kompillieren - Fertig ;)
Rich (BBCode):
make
make install
8) Nachdem alle libraries gedownloadet wurden die man zusätzlich benötigt, ffmpeg downloaden:
Rich (BBCode):
git://source.ffmpeg.org/ffmpeg.git ffmpeg
9) Im Verzeichnis von ffmpeg folgendes Ausführen:
Rich (BBCode):
sed -i 's/^#!.*$/#!\/opt\/bin\/bash/g' configure
10) Nun wieder konfigurieren. Alle libraries die man benötigt 'enablen'.
Rich (BBCode):
./configure --disable-shared --enable-gpl --enable-memalign-hack --enable-libmp3lame --enable-version3 --enable-nonfree --enable-libx264 --enable-libfaac --disable-armv6 --disable-armv6t2 --disable-ffplay --disable-ffserver --prefix=/opt --disable-neon --disable-asm --enable-avcodec --arch=arm --cpu=armv5te --enable-pthreads --disable-decoder=zmbv --target-os=linux --enable-armv5te
Hier habe ich wie man sieht lame, libx264 und libfaac aktiviert. Ist aber jedem selbst überlassen...

11) x264 dann noch kopieren:
Rich (BBCode):
cp /opt/lib/libx264.so.129 /lib
(Pfad gegebenfalls entsprechend anpassen...)

12) Kompillieren...
Rich (BBCode):
make
make install
Hat bei mir leicht eine Stunde gedauert, also Geduld ;)

Üblicherweise müssten qt-faststart und ffprobe auch installiert sein. Eine Überprüfung schadet aber nie.
Nachdem alles funktioniert, kann das Programm gestartet werden.
Einfach in den Video-Ordner den man überwachen will kopieren und starten. Ich habe eine kleine Kurzanleitung geschrieben, die die Bedienung erleichtern sollte. Die Anleitung bitte lesen ;)
Dem Programm liegt außerdem die Datei "AppleTV3" bei, die ich benutze um meine Videos zu konvertieren. Somit kann man sich gleich ein Bild machen.
Um das File zu verwenden, muss jedoch im Programm im settings-Menü der entsprechende Dateiname angegeben werden.
Viel Spaß :)
P.S. leider bin ich nicht so oft im Forum unterwegs, deshalb kann es sein, dass ich auf eventuelle Fragen recht spät antworte...

LG
 

Anhänge

  • PoisonConvert.zip
    670,7 KB · Aufrufe: 23

CutePoisonX

Benutzer
Mitglied seit
01. Feb 2013
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Sorry für den Doppelpost, habe die Edit- Funktion aber nicht gefunden :eek:
Bei einem Konsolenbefehl ist mir ein kleiner Fehler unterlaufen, war gestern ja auch schon spät ...
Um sich ffmpeg downzuloaden muss man korrekterweise folgenden Befehl ausführen:

git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

in meinem Beitrag oben haben die ersten 2 Wörter gefehlt...

LG
 

CutePoisonX

Benutzer
Mitglied seit
01. Feb 2013
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Diverse Fehlerbehebungen und Funktionserweiterungen

Hey Leute...

Hab das Programm ein bisschen auf Vordermann gebracht... Haben sich ja diverse Bugs eingeschlichen in der ersten Version... :p
Folgendes hab ich hinzugefügt und ausgebessert:
1) Mehr Optionen für Untertitel
2) Bug fix: Nach dem beenden blieb die Datei "NUL" übrig
3) Bug fix: Parameters die mit "NOT" spezifiziert wurden, wurden mitkonvertiert
4) Bug fix: Videocodecs wurden u.U. nicht richtig gespeichert
5) Funktionserweiterung: Man kann nun per Kommandozeile direkt mit mehreren Preference-Files starten:
./poisonconvert start [filename 1] [filename 2] [ ...]
Die einzelnen Dateien werden nacheinander abgearbeitet.
6) Ein paar prompts verändert
7) Bug fix: Der Container wurde nicht richtig gesetzt, falls der Videostream nicht übereinstimmte
8) Startet man das Programm mit "./poisonconvert version" wird die Programmversion ausgegeben
9) Erweiterung: Falls eine Datei einen bestimmten Stream enthält (z.B. Audio-Stream) und der Benutzer eine Regel definiert hat zum Konvertieren eines (Audio-) Streams, jedoch der Stream nicht übernommen wurde (weil die Parameter nicht übereinstimmten), sodass die Zieldatei keinen (Audio-)Stream besitzt, wird folgendes zur Originaldatei hinzugefügt:
"_nv" für nicht-vorhandenen Video-Stream, "_na" für nicht-vorhandenen Audio-Stream, "_ns" für nicht-vorhandenen Untertitel-Stream (In dieser Reihenfolge). Das ist vor allem dann nützlich, wenn eine Datei einen Stream besitzt, der einfach zu lange dauert zum Konvertieren für den ARM-Prozessor (z.B. h264). Dann kann man mittels Funktion 5) ein zweites Pref-File definieren, dass diesen Stream dann extrahiert um ihn dann auf einem anderen Gerät umzuwandeln.

Bsp. zu Punkt 8: Man hat ein Video im .mkv-Format mit folgenden Parametern:
Videocodec: h264, Audio: dts in deutsch und AC3 in Englisch.

Man braucht ein Video im mp4-Format mit h264-Codec und deutscher AC3-Audiospur.

dts nach Ac3 dauert bei mir fast 3 Stunden, deshalb extrahiere ich diesen Stream und
anschließend verarbeite ich ihn am PC weiter...

Das macht man auf folgende Weise:
Man lässt PoisonConvert drüberlaufen und wandelt die dts-Spur nicht um, d.h. man sucht nur nach deutschen AC3-Streams. Das oben beschriebene Video hat aber nur einen deutschen
dts-Audiostream, also wird das resultierende Video keine Audiospur haben und die Endung der
alten Datei ist somit ".old_na".

Vorher definiert man sich ein Preference-File, das nach Dateien mit dem Container .old_na
sucht und extrahiert mittels geeigneten Einstellungen den dts-Streams um ihn dann auf einem anderen Gerät weiterzuverarbeiten.

Poisonconvert startet man dann mit:
./poisonconvert start change_mp4 extract_dts

Wobei "change_mp4" der Dateiname ist für das erste Pref-File und "extract_dts" ist der Dateiname
für das zweite.


Das wars :)

Schönen Tag noch!
 

Anhänge

  • PoisonConvert 1.1.zip
    672,4 KB · Aufrufe: 14

WGzl

Benutzer
Mitglied seit
05. Dez 2012
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hallo CutePoisonX,
1) Installieren von ipkg auf der DS (darauf achten, das man das richtige bootstrap installiert und das "Herunterfahren-Skript"
ordnungsgemäß angepasst ist)

Welches "richtige" Bootstrap für den DS213 hast du genommen? Ich hatte bisher keinen Erfolg mit diversen Versionen.
Und das "Herunterfahren-Skript" soll ordnungsgemäß angepasst werden -- welches, wie?

Großen Dank für einen Hinweis,
Werner.
 

CutePoisonX

Benutzer
Mitglied seit
01. Feb 2013
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Welches "richtige" Bootstrap für den DS213 hast du genommen? Ich hatte bisher keinen Erfolg mit diversen Versionen.
Und das "Herunterfahren-Skript" soll ordnungsgemäß angepasst werden -- welches, wie?

Anscheinend ist der Link zum Bootstrap den ich genommen habe tot. probiers mal mit der Seite:
http://packages.quadrat4.de und befolge die Anleitung.

Nach der Installation von ipkg kann es passieren, dass die DiskStation nicht herunterfährt. Am besten du befolgst Schritt-für-Schritt die Anleitung unter: http://www.synology-wiki.de/index.php/IPKG#Weitergehende_Installation_IPKG.

Btw: hab den Sourcecode von PoisonConvert auf github veröffentlicht, somit kann das Programm im Prinzip auf jeder DiskStation kompiliert werden. Es handelt sich dabei um eine aktuellere Version.
Hier der link: https://github.com/CutePoisonX/PoisonConvert

Der Thread dazu im Englischen Synology-forum: Thread

Grüße
 

drmiezo

Benutzer
Mitglied seit
25. Jun 2018
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Hi CutePoisonX ich habe deinen Threat gefunden und ein Problem in einem Zwischenschritt. Da das ganze recht speziell ist, habe ich auch nichts vergleichbares im Netz gefunden. Solltest du hier aktiv sein, bitte um kurz Meldung, dann kann ich dir das Problem schildern. Vielen Dank!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat