MediaServer und nicht laufende mkv

Status
Für weitere Antworten geschlossen.

Pa-Vis Kalka

Benutzer
Mitglied seit
20. Nov 2013
Beiträge
32
Punkte für Reaktionen
0
Punkte
12
Ich hatte heute das Problem, dass einige mkv zwar erkannt und per DLNA gelistet wurden, jedoch nicht wiedergegeben werden konnten.
Also habe ich mich auf die Suche nach dem Problem gemacht. Oft liest man, dass es ein Problem der Codecs ist, die das Wiedergabegerät nicht akzeptiert. Also mal die Mediainfo angesehen und vergleichen. Die Dateien die liefen und die die nicht liefen hatten fast identische Tags (Bitrate mal vernachlässigt)

Doch es gab einen Unterschied: Bei den nicht laufenden tauchte ein „Header Stripping 1“ auf. Und das scheint der Übeltäter zu sein.
Mit MKVToolnix habe ich zum Test eine Datei neu erstellt und tadaa… es läuft.

Nun ist die Frage: muss man wirklich jede Datei neu erstellen lassen (dauert bei großen Dateien ja auch seine Zeit), oder gibt es einen eleganteren Weg?

Grüße
Pa-Vis
 

nachon

Benutzer
Mitglied seit
21. Aug 2011
Beiträge
2.656
Punkte für Reaktionen
9
Punkte
78
Mit welchem Abspielgerät spielst Du die Dateien ab?
Welche DSM Version nutzt Du? Welche MediaServer Version ist im Einsatz?
 

nachon

Benutzer
Mitglied seit
21. Aug 2011
Beiträge
2.656
Punkte für Reaktionen
9
Punkte
78
Weisst Du was dies "Header Stripping 1" beinhaltet?

Nun, ich befürchte Du wirst um das umwandeln bzw. Bearbeiten nicht herum kommen. Der MedienServer hat sich gerade mit den letztern Versionen angeblich aus Lizenzrechtlichen Gründen stark im Umgang mit MKV Dateien verändert.
Evtl funktioniert es mit der Beta bei Dir, ansonsten gibt es wohl keine andere Lösung.

Von wievielen Dateien sprichst Du denn?
 

Pa-Vis Kalka

Benutzer
Mitglied seit
20. Nov 2013
Beiträge
32
Punkte für Reaktionen
0
Punkte
12
Was es genau heißt habe ich bisher noch nicht gefunden nein.

Es geht bei mir (denke ich) nicht unbedingt um die Menge, sonder eher um das Wiederfinden. Ich hatte vor NAS-Zeiten die Externen an der Fritzbox hängen und da hab ich das nicht abspielen auf die Fritzbox geschoben. Ich müsste so jede einzelne mkv testen und ggf umwandeln.

Edit: die genauere Bezeichnung scheint wohl ""Muxing-Modus : Header stripping "" zu sein
 
Zuletzt bearbeitet:

Bordi

Benutzer
Mitglied seit
24. Jan 2010
Beiträge
3.198
Punkte für Reaktionen
3
Punkte
0
MKV ist wie (AVI und ähnliche ein Videocontainer , es ist nicht zwingen erforderlich das die darin enthaltene Videodatei, der Container Datei entspricht. MakeMKV nutzt genau dies aus, was bei einigen den Eindruck wecken lasst das MKV auf dem TV/DLNA Client funktionieren, und MKVToolNix nichts taugen würde. ;-) Tatsache ist allerdings das der TV bez. DLNA Client nicht mit dem Medien-Container, sondern mit den darin enthaltenen Audio / Video-Codec (WebM, H.264, DAC, AC-3, ect..) umgehen muss.
Player die mit genialen Formaten wie Matroska, Vorbis oder Flac umgehen können, sind leider noch selten. Ev. schaust du mal nach was dein Player so drauf hat, und vergleichst das mit deiner Datei? MediaInfo kann dir dabei sehr nützlich sein. ;)


PS:
Edit: die genauere Bezeichnung scheint wohl ""Muxing-Modus : Header stripping "" zu sein
Noch nie gelesen, aber zutreffend. Hast du Erfahrung mit ffmpeg und Scripts? Könnte mir Forstellen das dir eine Zeile (z.B: for i in *.mkv; do ffmpeg -i $i -vcodec copy -acodec "`basename "$i" .mkv`"_new.mkv...) hierbei schon helfen könnte.
Ist das nichts, kann dir ev der Hinweis auf mkclean helfen.
 
Zuletzt bearbeitet:

wolfn

Benutzer
Mitglied seit
03. Dez 2012
Beiträge
76
Punkte für Reaktionen
5
Punkte
8
Also ich habe seit einigen Wochen eine 413j und spiele darüber fleissig mkv's ab. An der DS sollte es eigentlich nicht liegen. Habe aber die Erfahrung machen müssen, daß kaum ein Abspieler mit mkv, mit mp4 schon garnicht klarkommt (h264 wohlgemerkt).
Einzig meine schon betagte WDTVlive gibt alles wieder als könnte es nicht anders sein, sie bevorzugt allerdings mkv's. Mit mp4 direkt kommt sie meist auch ins schleudern. Ich fürchte, Du wirst Dir die Mühe machen müssen, die mkv's nach einem einheitlichen Schema 'umzurubbeln', damit was reproduzierbares rauskommt. Schau Dir mal das Prog. 'Handbrake' an, gibts für viele Plattformen.
 

nachon

Benutzer
Mitglied seit
21. Aug 2011
Beiträge
2.656
Punkte für Reaktionen
9
Punkte
78
Also ich habe seit einigen Wochen eine 413j und spiele darüber fleissig mkv's ab. An der DS sollte es eigentlich nicht liegen. Habe aber die Erfahrung machen müssen, daß kaum ein Abspieler mit mkv, mit mp4 schon garnicht klarkommt (h264 wohlgemerkt).
Einzig meine schon betagte WDTVlive gibt alles wieder als könnte es nicht anders sein, sie bevorzugt allerdings mkv's. Mit mp4 direkt kommt sie meist auch ins schleudern. Ich fürchte, Du wirst Dir die Mühe machen müssen, die mkv's nach einem einheitlichen Schema 'umzurubbeln', damit was reproduzierbares rauskommt. Schau Dir mal das Prog. 'Handbrake' an, gibts für viele Plattformen.

Ihr solltet schon dazu schrieben welche DSM und MediaServer Versionen Ihr nutzt. Hier gab es vor kurzem massiver Änderungen, so dass evtl. Probleme auch daran liegen können.
Ein generell geht oder geht nicht ist da eher schwierig einzuschätzen.
 

wolfn

Benutzer
Mitglied seit
03. Dez 2012
Beiträge
76
Punkte für Reaktionen
5
Punkte
8
Habe das vorhin so zwischen Tür und Angel geschrieben ohne nachsehen zu können.

So, gerade nachgesehen: DSM 4.3-3776, Medienserver ist 1.1-2406.

Habe mir nach all den Berichten und Diskussionen erstmal alle Updates verkniffen, weil es bei mir einigermaßen läuft und genug andere Baustellen sind.
Zu neueren Versionen kann ich also nix sagen.

Die genannten Versionen liefern jedenfalls meine mkv's fehlerfrei ab, sogar welche mit extrem hohen Bitraten.

Edit: Habe nochmal den 1. Beitrag angeschaut. Bis jetzt ist nicht klar, was in dem Container drin ist! Ich unterstelle mal mp4/h264. Sowas bereite ich generell auf mit tsmuxerGUI (demuxen) und dann mkvmerge zum mkv machen. Das geht schneller als mit Handbrake, weil kein Neu-codieren. Hatte bisher noch kein Problem damit. Wirst aber wohl jedes 'Problemkind' anfassen müssen oder per batch...
 
Zuletzt bearbeitet:

Pa-Vis Kalka

Benutzer
Mitglied seit
20. Nov 2013
Beiträge
32
Punkte für Reaktionen
0
Punkte
12
Edit: Habe nochmal den 1. Beitrag angeschaut. Bis jetzt ist nicht klar, was in dem Container drin ist! Ich unterstelle mal mp4/h264. Sowas bereite ich generell auf mit tsmuxerGUI (demuxen) und dann mkvmerge zum mkv machen. Das geht schneller als mit Handbrake, weil kein Neu-codieren. Hatte bisher noch kein Problem damit. Wirst aber wohl jedes 'Problemkind' anfassen müssen oder per batch...
Hier mal ein Auszug einer betroffenen Datei:
Allgemein
UniqueID/String :
Vollständiger Name :
Format : Matroska
Format-Version : Version 2
Dateigröße : 1,45 GiB
Dauer : 42min
Gesamte Bitrate : 4 910 Kbps
Kodierungs-Datum : UTC 2011-05-07 13:28:05
Kodierendes Programm : mkvmerge v4.3.0 ('Escape from the Island') built on Sep 5 2010 10:30:51
verwendete Encoder-Bibliothek : libebml v1.0.0 + libmatroska v1.0.0

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format-Profil : High@L3.1
Format-Einstellungen für CABAC : Nein
Format-Einstellungen für ReFrames : 2 frames
Muxing-Modus : Header stripping
Codec-ID : V_MPEG4/ISO/AVC
Dauer : 42min
Bitrate : 4 204 Kbps
Breite : 1 280 Pixel
Höhe : 720 Pixel
Bildseitenverhältnis : 16:9
Modus der Bildwiederholungsrate : konstant
Bildwiederholungsrate : 25,000 FPS
ColorSpace : YUV
ChromaSubsampling : 4:2:0
BitDepth/String : 8 bits
Scantyp : progressiv
Bits/(Pixel*Frame) : 0.182
Stream-Größe : 1,24 GiB (86%)
Sprache : Englisch
Default : Ja
Forced : Nein
colour_primaries : BT.709
transfer_characteristics : BT.709
matrix_coefficients : BT.709

Audio #1
ID : 2
Format : AC-3
Format/Info : Audio Coding 3
Format_Settings_ModeExtension : CM (complete main)
Format-Einstellungen für Endianess : Big
Muxing-Modus : Header stripping
Codec-ID : A_AC3
Dauer : 42min
Bitraten-Modus : konstant
Bitrate : 224 Kbps
Kanäle : 2 Kanäle
Kanal-Positionen : Front: L R
Samplingrate : 48,0 KHz
BitDepth/String : 16 bits
Stream-Größe : 67,9 MiB (5%)
Titel : GER TVS
Sprache : Deutsch
Default : Ja
Forced : Nein

Audio #2
ID : 3
Format : AC-3
Format/Info : Audio Coding 3
Format_Settings_ModeExtension : CM (complete main)
Format-Einstellungen für Endianess : Big
Muxing-Modus : Header stripping
Codec-ID : A_AC3
Dauer : 42min
Bitraten-Modus : konstant
Bitrate : 384 Kbps
Kanäle : 6 Kanäle
Kanal-Positionen : Front: L C R, Side: L R, LFE
Samplingrate : 48,0 KHz
BitDepth/String : 16 bits
Stream-Größe : 116 MiB (8%)
Titel : ENG
Sprache : Englisch
Default : Nein
Forced : Nein​

Nach dem neu-muxen mit MKVToolnix sind die Werte identisch bis auf Muxing-Modus, der is dann verschwunden.

Noch nie gelesen, aber zutreffend. Hast du Erfahrung mit ffmpeg und Scripts? Könnte mir Forstellen das dir eine Zeile (z.B: for i in *.mkv; do ffmpeg -i $i -vcodec copy -acodec "`basename "$i" .mkv`"_new.mkv...) hierbei schon helfen könnte.
Ist das nichts, kann dir ev der Hinweis auf mkclean helfen.

ffmpeg hab ich mir besher noch nicht angeschaut, aber mkclean ist doch im Prinzip das gleiche wie MKVToolnix oder?
 

wolfn

Benutzer
Mitglied seit
03. Dez 2012
Beiträge
76
Punkte für Reaktionen
5
Punkte
8
Also zu dem 'Header-strippig' kann ich nichts sagen, außer vielleicht, daß da einer beim letzten Durchlauf (mkv erstellen) zu viel Informationen weggeschnitten hat und das Produkt damit für den Player schwer bis garnicht verdaulich ist. Offenbar ist er auf die fehlenden Informationen in den Headern angewiesen.

Nebenbeibemerkt ist Deine Version von mkvmerge (die in dem Film vermerkt ist) schon reichlich alt. Ich meine seither gab es eine Vielzahl von Verbesserungen/Korrekturen. Aktuell ist jetzt 6.irgendwas.
Solltest Du unbedingt zum Einsatz bringen. Und darauf achten, die fps für den Video-Anteil korrekt anzugeben. Ich sehe in Deinem Protokoll fps=25, das ist der Default im Programm. Falls das TV-Mitschnitte sind ist aber fps=50 bei dem angezeigten Format, jedenfalls soweit ich das kenne.

Was die angezeigte Bitrate anbelangt, sehe ich überhaupt kein Problem. Habe gelegentlich das 10fache und mehr und geht auch.

In Sachen ffmpeg würde ich mich wegen Rechenaufwand zurückhalten. Das ist was Handbrake auch macht. Wenn einfaches remuxen reicht, sollte es dabei bleiben, sonst leidet meist die Qualität.
 

wolfn

Benutzer
Mitglied seit
03. Dez 2012
Beiträge
76
Punkte für Reaktionen
5
Punkte
8
@nachon:
Kannst Du mal bitte einen 'Fingerzeig' geben, wo das nachzulesen ist? (mit der veränderten mkv-Behandlung)
Möchte nicht bei evtl. Updates in irgendwelche Gruben fallen...
 

nachon

Benutzer
Mitglied seit
21. Aug 2011
Beiträge
2.656
Punkte für Reaktionen
9
Punkte
78
@nachon:
Kannst Du mal bitte einen 'Fingerzeig' geben, wo das nachzulesen ist? (mit der veränderten mkv-Behandlung)
Möchte nicht bei evtl. Updates in irgendwelche Gruben fallen...

Das wärst Du dann schon. :D

Mit dem neuen DSM wurde der MedienServer aktualisiert und das transcoding abgestellt. Dadurch konnte einige Player wie z.B. auch die PS3 (die ich bis dato nutze) keine MKV mehr abspielen, was vorher mit dem MedienServer Problemlos funktionierte.

Daher hatte ich den Hinweis hier erwähnt, weil auch dies eine mögliche Ursache hätte sein können. :)
 

Bordi

Benutzer
Mitglied seit
24. Jan 2010
Beiträge
3.198
Punkte für Reaktionen
3
Punkte
0
ffmpeg hab ich mir besher noch nicht angeschaut, aber mkclean ist doch im Prinzip das gleiche wie MKVToolnix oder?
Ja und nein. Ich verstehe das so dass MKVToolNix auf mkclean zugreift, um dessen Funktionen zu nutzen. Mit ffmpeg oder mkclean hast du Programme die über die Zeileneingabe, oder einen Script bedient werden. Die meisten verstehen darunter, eine mühselige Bedienung welche im Gegenzug einen Performance-vorteil bringt (weil die GUI fehlt). Ich verstehe darunter, das sich das Programm mit einem Script ausführen kann, und möglichst alle MKV's in einem Streich durch-putzen-lassen kann. Ein passende Shell-Script könnte beispielsweise so aussehen.

#!/bin/bash
#Alle MKV's in diesem Verzeichnis umwandeln
#
#Leerzeichen in Unterstrich wandeln....
for i in *.*; do mv "$i" `echo $i | tr ' ' '_'`; done
#Groß in Kleinschreibung wandeln...
for i in *.*; do mv "$i" `echo $i | tr A-Z a-z`;done
#Sonderzeichen wandeln...
for i in *.*; do mv "$i" `echo $i | tr ä ae`;done
for i in *.*; do mv "$i" `echo $i | tr ö oe`;done
for i in *.*; do mv "$i" `echo $i | tr ü ue`;done
for i in *.*; do mv "$i" `echo $i | tr ß ss`;done
#Video umwandeln..
for i in *.mkv; do ffmpeg -i $i -vcodec copy -acodec "`basename "$i" .mkv`"_new.mkv
#
echo Hey alter! Wach auf, ich bin fertig.

1x Ausgeführt, würde er sich allen mkv's innerhalb eines Verzeichnisses annehmen.

Ich hab schon einige dieser Scripts verwendet, einen um den Header zu strippen allerdings noch nicht. Also bitte verzeih wenn ich hier nur ein ungetestetes Beispiel präsentiere.


@wolfn Ein Header kann komprimiert sein (wie eine ZIP datei). Damit kann nicht jeder Player umgehen.
 

wolfn

Benutzer
Mitglied seit
03. Dez 2012
Beiträge
76
Punkte für Reaktionen
5
Punkte
8
Danke, bin beruhigt.
Das ist für die 413j eh' zu fett. Die kommt ja gerade so mit dem 08-15 Kram klar.
 

Pa-Vis Kalka

Benutzer
Mitglied seit
20. Nov 2013
Beiträge
32
Punkte für Reaktionen
0
Punkte
12
Also das remuxen nimmt mir wirklich alle Probleme ab, jede Datei die ich geremuxt habe und davor nicht lief läuft tadellos.

jetzt ist die Frage, wie ich am schnellsten einen Schwung Dateien durch bekomme.
Bat geht nicht, da keine Netzwerkpfade erlaubt sind.

Also auf der Nas... hatt jemand ein Fingerzeig für mich wie ich dort remuxen kann? ^^

Edit: interessanter Weise funktioniert die Bat nur auf der Netzwerkressource nicht, auf einem Netzwerklaufwerk jedoch schon.
 
Zuletzt bearbeitet:

Pa-Vis Kalka

Benutzer
Mitglied seit
20. Nov 2013
Beiträge
32
Punkte für Reaktionen
0
Punkte
12
Hier habe ich einen Bat-Code gefunden, der (fast) tut was ich möchte und habe daraus das gemacht:

Rich (BBCode):
@ECHO OFF
REM Fix compressed_headers problems in .MKV-files for the WDTV Live and other players
REM that fail to play these. Requires MVKToolnix installed, (recommended v.4.0).
REM This ensures you can easily identify Incompatible (>v.4.0) and compatible files.
REM Usage: Just drop the files or directories onto this .BAT-file.
REM Kudos to script authors and Matroska

cd "%~dp0"
rem SET MKVTOOLPATH=C:\Program Files (x86)\MKVToolnix
SET KEY="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\mmg.exe"
FOR /F "tokens=2*" %%A IN ('REG QUERY %KEY%') DO SET MKVTOOLPATH=%%B
ECHO MKVToolnix found at %MKVTOOLPATH% > log.txt

FOR /F "delims=*" %%A IN ('dir /b /s *.MKV') do CALL :MKVFIXMUX "%%A" "%MKVTOOLPATH%"
EXIT

:MKVFIXMUX
rem depends on your language
rem check mkvinfo.exe
"%~dp2mkvinfo.exe" "%~dpnx1"|FIND "Entfernen von Kopfdaten" >NUL
IF NOT ERRORLEVEL 1 ( 
	SET VERS=**
	goto :REMUX
)
:OK
ECHO File WDTV-OK:(%VERS%) '%~nx1'
ECHO File WDTV-OK:(%VERS%) '%~nx1' >> log.txt
goto :eof

:REMUX
ECHO Start remuxing: %~nx1
ECHO Start remuxing: %~nx1 >> log.txt
"%~dp2mkvmerge.exe" -o "%~dpn1_fixed.MKV" --engage keep_bitstream_ar_info -A -S --compression -1:none "%~dpnx1" -D -S --compression -1:none "%~dpnx1" -A -D --compression -1:none "%~dpnx1" >NUL
if not errorlevel 0 (
ECHO Failed remuxing: %~nx1
ECHO Failed remuxing: %~nx1 >> log.txt
goto :eof
)
if exist "%~dpn1_fixed.MKV" (
del "%~dpnx1"
rename "%~dpn1_fixed.MKV" "%~nx1"
)
ECHO File remuxed:(%VERS%) '%~nx1'
ECHO File remuxed:(%VERS%) '%~nx1' >> log.txt
goto :eof

FAIL:
START "" log.txt

für einen Ordner scheint es auch sehr gut zu funktionieren, aber könnte mir das jemand abändern, dass auch alle Unterordner durchlaufen werden?
 
Zuletzt bearbeitet:

Bordi

Benutzer
Mitglied seit
24. Jan 2010
Beiträge
3.198
Punkte für Reaktionen
3
Punkte
0
@Pa-Vis Kalka
Nur mal so ne Frage: Hast du dich inzwischen schon mal mit ffmpeg befasst?
Der wäre auf deiner DS ja schon drauf, und in die Materie von einfachsten Shellscripts & Linux-Ungebung/Zeilenkomandos liesse sich ja eintauchen. nicht?
 

Pa-Vis Kalka

Benutzer
Mitglied seit
20. Nov 2013
Beiträge
32
Punkte für Reaktionen
0
Punkte
12
Hab ich ja und ich denke dass
Rich (BBCode):
ffmpeg -i input.mkv  -vcodec copy -acodec copy -scodec copy out.mkv
das Richtige ist.

Nur fehlt mir mit ffmpeg eine möglichkeit noch dem stripped zu suchen, denn wenn ichs nicht übersehen habe, steht es bei ffmpeg -i input.mkv nicht dabei.
 

Bordi

Benutzer
Mitglied seit
24. Jan 2010
Beiträge
3.198
Punkte für Reaktionen
3
Punkte
0
-map 0:0 -map 0:1 -map 0:3
..funktioniert nicht?

Die passende Scriptvorlage wäre dann:
Rich (BBCode):
#!/bin/bash
 #Alle MKV's in diesem Verzeichnis umwandeln
 #
 #Leerzeichen in Unterstrich wandeln....
 for i in *.*; do mv "$i" `echo $i | tr ' ' '_'`; done
 #Groß in Kleinschreibung wandeln...
 for i in *.*; do mv "$i" `echo $i | tr A-Z a-z`;done
 #Sonderzeichen wandeln...
 for i in *.*; do mv "$i" `echo $i | tr ä ae`;done
 for i in *.*; do mv "$i" `echo $i | tr ö oe`;done
 for i in *.*; do mv "$i" `echo $i | tr ü ue`;done
 for i in *.*; do mv "$i" `echo $i | tr ß ss`;done
 #Video umwandeln..
 for i in *.mkv; do ffmpeg -i $i -map 0:0 -map 0:1 -map 0:3 -vcodec copy -acodec -scodec "`basename "$i" .mkv`"_new.mkv
 #
 echo Hey alter! Wach auf, ich bin fertig.
..oder so ähnlich. :))
 
Zuletzt bearbeitet:
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