PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Sanyo mp4 Videos



rkracker
23.06.06, 23:37
Hallo Forum,

vor ein paar Wochen war ich noch froh, als ich die mp4 Filme meiner Sanyo Xacti C1 unter MPlayer anschauen konnte.
Die kleine schniggeligge Filmkammera macht Filme mit einer Auflösung von 640x480, aber in der Datei enthällt der Header fälschlicherweise die Information, dass der Video eine Auflösung von 320x240 hätte.

Als einziger Linux - Player war bisher MPlayer (KMPlayer) in der Lage, die Videos in richtiger Auflösung darzusellen.
Wie gesagt früher !!
Als ich aber diese Woche mit Synaptic einen Update fuhr, habe ich nun MPlayer 1.0pre8-2, KMPlayer 0.9.2_2.0-1.guru.suse100 und mplayerplug-in 3.21-0.pm.0 drauf.
Und siehe da, die Videos werden nicht mehr richtig dargestellt.
Wenn ich im Vollbildmodus den Film laufen lasse, bekomme ich dennoch nur die linke obere hälfte zu sehen.

Es gibt ja in den "Preferences" im MPlayer (KMPlayer) jede menge einzustellen, aber ich habe da habe ich einfach zu wenig Ahnung davon.

Hat jemand eine Idee, was ich da mache kann?

Ich würde gerne eine mp4 - Datei als Muster bereitstellen, wenn ich wüsste, wie ich es euch zur Verfügnug stellen könnte.

Teetrinker
24.06.06, 08:09
Für einzelne MP4 Dateien könntest du versuchen ob ein:

MP4Box -isma deineDatei.mp4 hilft.

Hier findest du ein MP4Box RPM für SuSE: http://rapidshare.de/files/23954517/MP4Box.tar.bz2.html

Sollte MP4Box so die Metadaten der Datei nicht korrigieren musst du den Audio/Video Stream erst extrahieren und dann wieder mit MP4Box zusammen muxen. Mehr dazu sollte es notwendig sein.

Ich weiß das du über eine große Anzahl von Videos verfügst und dir es lieber wäre das der Player die Angaben in den Metadaten ignoriert.
Bei Osmo4 von GPAC konnte man das Glaube ich einstellen in dem man bei "Force Scene Size" einen Haken setzte. Für Osmo4 habe ich leider nur ein RPM welches eine andere wxGTK Version als bei dir installierte voraussetzt. Desweiteren hat der Player leider noch ein paar Probleme und ist auch nicht so performant, hat dafür aber andere Vorteile.

Teetrinker
24.06.06, 08:13
Ich würde gerne eine mp4 - Datei als Muster bereitstellen, wenn ich wüsste, wie ich es euch zur Verfügnug stellen könnte.

Ein Beispiel kannst du bei http://www.rapidshare.de/ hochladen.

rkracker
24.06.06, 23:38
Hallo Teetrinker,

danke, für die schnelle Antworten.

Ebenfalls Danke für die Dateien "gpac-MP4Box-0.4.0.99-0.CVS20060617.SuSE100.i586.rpm" und "gpac-0.4.0.99-0.CVS20060607.SuSE100.i586.rpm".

Als sich die beiden RPM's installieren wollte kam ein Paketkonflikt, dass das Paket "gpac-0.4.0.99-0.CVS20060617.SuSE100.i586.rpm" fehlen würde, aber diesen Fehler habe ich einfach mal ignoriert.

Nachdem ich die den Befehl:
"MP4Box -isma /home/rk/Documents/Media1/Test.MP4"
startete, kam folgende Meldung:

"Converting to ISMA Audio-Video MP4 file...
Saving to /home/rk/Documents/Test.mp4: 0.500 secs Interleaving"

Die neu entstandene Datei ist nicht nicht mehr 2.4 MB groß sondern hat nur noch 79 Byte und enthällt den Inhalt:
" ftypisom isom mdat 3freeIsoMedia File Produced with GPAC 0.4.1-DEV "

Das war wahrscheinlich ganz der effekt, den der Befehl "MP4Box -isma deineDatei.MP4" erreichen sollte.

Das "Osmo4 von GPAC" habe ich noch nicht näher angeschaut, da ich auf der Homepage "http://gpac.sourceforge.net/FAQ.php#Osmo4" nicht so richtig schlau werde.
Da möchte ich mich auch nicht aus weit aus dem Fenster herauslehnen.


Eine "Test.MP4" - Datei habe ich mal unter dem Link:
"http://rapidshare.de/files/24019801/Test.MP4.html".

Vielleicht hast Du eine Möglichkeit, das Video (den Skifahrer) in voller Auflösung (640x480) unter Linux anzusehen.


Danke im voraus

Teetrinker
25.06.06, 08:07
Ups, da habe ich versehentlich ein falsches rpm mit ins Archive gepackt, das richtige findest du hier: http://rapidshare.de/files/24046142/gpac-0.4.0.99-0.CVS20060617.SuSE100.i586.rpm.html

Verwende mal "MP4Box -add deineDatei.mp4 Ausgabe.mp4" anstelle der vorher genannten Zeile. In xine/vlc kann man danach das Video in volle Größe betrachten.

VLC zeigt es vorher schon komplett an. Er zeigt bei Mediainfo allerdings auch 320x240 an.

Wie gesagt ich würde auf jeden Fall versuchen die Metadaten zu korrigieren man weiß ja nie wie Player in ein paar Jahren damit umgehen werden.

rkracker
26.06.06, 21:29
Hallo Teetrinker,

es hat geklappt!!!

Mit dem Befehl "MP4Box -add /home/rk/Documents/Test.MP4 /home/rk/Documents/Test_corr.MP4" ist das Video mit dem Mplayer in richtiger Auflösung zu sehen.

Nun hast Du mir eine Möglichkeit gezeigt, daß das Video korrigiert werden kann, und ich sehe ein, dass die Zukunft (zukünftige Videoplayer) immer in die Richtung gehen, den Header auszuwerten.

Nun stellen sich bei mir 3 Fragen:

- Zum einen muß ich die bestehenden Videos (ca 850 mp4-Videos) mit deiner Befehlssequenz überarbeiten.
Weist Du da eine Möglichkeit mit einem Skript die Dateien unter einem Verzeichnis automatisch zu korrigieren. Dabei sollte der Ausgabe - Dateinamen den gleichen Namen erhalten, wie der Name der Eingabedatei?

- Wie kann ich das erreichen, dass der Befehl mehrmals auf eine Datei angewendet werden kann, ohne dass die Fehlermeldung "Error renaming file out_Test_corr.MP4" kommt?.
Weil nach der Fehlermeldung ist die Ziel - Datei dann verschwunden.
Der Einfachheits halber möchte ich einfach dieses Skript anwenden, ohne jede einzelne Datei voher mit dem Videoplayer anschauen zu müssen.

- Ich würde gerne dem Sanyo - Support das Problem schildern.
Wie oder was muß ich den Sanyo - Technikern beschreiben (Fachchinesisch), damit die auch verstehen, worum es geht, und wo der Schuh drückt?
Vielleicht kommt da ja noch ein Upgrade.

Es wäre schön wenn Du da für mich ein paar Tipps auf Lager hättest.

Danke, Teetrinker

rkracker
01.07.06, 22:11
Hallo,

da bin ich in einer untragbaren Zwickmühle:

- Unter Windows 98 Ulead Photo Explorer wären die Videos ohne wenn und aber abspielbar --> aber von Windows möchte ich mich trennen.

- Mit Linux SuSe 10.0 und VMWare 5.5.1 und Win98 - Ulead Photo Explorer wären theoretisch die Videos auch abspielbar (Celeron 2,6 GHz, 512 MB Ram) aber VMWare ist lahm wie eine Schecke und der Ton ist verzerrt und die Videos ruckeln (Tool und Soundtreiber ist installiert).

- Unter SuSe 10.0 kann ich die Videos unbearbeitet auch nicht anschauen, da die Dateien eine Macke haben.
Da müsste ich nun jede einzelne Datei mit dem Befehl "MP4Box -add Quelle Ziel" umbenennen. In der Praxis lautet die Datei z.B. "2006-04-29_13.14 3017 TVK Turnen Allgäuer Einzelmeisterschaft.mp4"
Nun müsste ich bei jedem Video immer diese langen Zeichenketten eintragen "MP4Box -add 2006-04-29_13.14 3017 TVK Turnen Allgäuer Einzelmeisterschaft.mp4 2006-04-29_13.14 3017 TVK Turnen Allgäuer Einzelmeisterschaft.mp4"

Den Befehl darf ich aber nur ein mal ausführen, denn sonst ist die Datei futsch. Ob ich den Befehl also schon mal ausgeführt habe oder nicht sehe ich daran, wenn das Video weg ist.

Da ist mir einfach zu mühsam aber vor allem zu riskant.

Ich weis momentan nicht, an welcher Stelle ich am besten ansetzten soll, um einen normalen Arbeitsablauf zu erhalten:

Bilder/Videos aufnehmen, --> auf Festplatte kopieren --> Umbenennen (z.B. KRename) --> Einzeln anschauen (evtl. löschen) --> und die Bilder/Videos als Diashow, in chronologischer Reihenfolge, der Familie zeigen.

Das ist aber unter Linux ganz schön steinig. Wobei nicht Linux sondern, aus meiner Sicht, Sanyo, bei der "Xacti Digital Movie C1" den Bock geschossen hat.

Ich habe Monatelang !! die Foren (viele gabs nicht) über die Xacti C1 studiert, aber noch nie hat jemand über Probleme in den mp4 - Dateien, in deutscher Sprache, berichtet; --> nun ja, unter Windows gabs (gibts) ja auch keine.

Das Ding war mit ca. 500.- € auch nicht mal so billig.

Hat vielleicht jemand eine komfortabler und sichere Methode, die mp4 - Dateien zu berichtigen?

Ich wäre um eine Hilfe Dankbar.

Danke im voraus

Teetrinker
02.07.06, 11:27
Nun stellen sich bei mir 3 Fragen:

- Zum einen muß ich die bestehenden Videos (ca 850 mp4-Videos) mit deiner Befehlssequenz überarbeiten.
Weist Du da eine Möglichkeit mit einem Skript die Dateien unter einem Verzeichnis automatisch zu korrigieren. Dabei sollte der Ausgabe - Dateinamen den gleichen Namen erhalten, wie der Name der Eingabedatei?


Ich würde vorsichtshalber die alten Dateien erstmal als Backup aufbewahren, also die neuen Dateien zum Beispiel in einem Unterverzeichnis mit den Namen new/neu erstellen und die bereits abgearbeiteten Dateien in ein Verzeichnis mit den Namen alt oder Backup verschieben.



- Ich würde gerne dem Sanyo - Support das Problem schildern.
Wie oder was muß ich den Sanyo - Technikern beschreiben (Fachchinesisch), damit die auch verstehen, worum es geht, und wo der Schuh drückt?
Vielleicht kommt da ja noch ein Upgrade.


Die Sanyo Techniker sollen mal einen Blick in ISO/IEC 14496-12 (ISO Base Media Format) unter Track Header Box werfen. Da werden Sie dann diesen Text finden:


width and height specify the track's visual presentation size as fixed-point 16.16 values. These
need not be the same as the pixel dimensions of the images, which is documented in the sample
description(s); all images in the sequence are scaled to this size, before any overall transformation of
the track represented by the matrix. The pixel dimensions of the images are the default values.


Der nächste Punkt auf den Sie eine Blick werfen sollten ist "Sample Table Box (‘stbl’)" Dort findet sich folgende Passage:

width and height are the maximum visual width and height of the stream described by this sample
description, in pixels


Anmerkung: Früher wurde eine "Box" bei 14496 wie beim QuickTime File Format "Atom" genannt.

Hier noch ein Auszug aus 14496-14(MP4 File Format):


In MPEG-4 both visual and aural composition are done using the BIFS system. Therefore structures marked as “template” in the ISO Base Media Format which pertain to composition, including fields such as matrices, layers, graphics modes (and their opcolors), volumes, and balance values, from the MovieHeaderBox and TrackHeaderBox, are all set to their default values in the file format. These fields do not define visual or audio composition in MPEG-4; in MPEG-4, the BIFS system defines the composition.
The fields width and height in the VisualSampleEntry and in the Track Header Box shall be set to the pixel dimensions of the visual stream


Da aber niemand zur Zeit BIFS beachtet. Wer weiß ob das jemals passieren wird? Sollten die Angaben der Höhe und Weite stimmen. Wenn man mit MP4Box -bt deineDatei.MP4 einen Blick auf IOD und BIFS wirft. Fällt einem erstmal auf, dass im IOD auch keine Höhe und Weite gesetzt ist.


InitialObjectDescriptor {
objectDescriptorID 0
audioProfileLevelIndication 15
visualProfileLevelIndication 243
sceneProfileLevelIndication 254
graphicsProfileLevelIndication 254
ODProfileLevelIndication 254
esDescr [
ES_Descriptor {
ES_ID 4
decConfigDescr DecoderConfigDescriptor {
objectTypeIndication 2
streamType 3
bufferSizeDB 256
decSpecificInfo BIFSv2Config {
isCommandStream true
pixelMetric true #fehlt
pixelWidth 640 #fehlt
pixelHeight 480 #fehlt
}
}
slConfigDescr SLConfigDescriptor {
useAccessUnitStartFlag true
useAccessUnitEndFlag true
useTimeStampsFlag true
timeStampResolution 30000
timeStampLength 32
}
langDescr LanguageDescriptor {
languageCode "eng"
}
}
...


Zurück zu deinem Problem. Erstelle mal eine Text Datei mit folgenden Inhalt:


#!/bin/bash
mkdir new
mkdir backup
for NAME in *.MP4 ; do
MP4Box -add "$NAME" new/"$NAME"
mv "$NAME" backup/"$NAME"
done


Sorge dafür das die Datei Ausführbar ist und verschiebe sie in das bin Verzeichnis deines Benutzers. Wechsele in das Verzeichnis mit deinen MP4 Dateien und rufe das von dir erstellte kleine Shell Script auf.

Anmerkung: du benötigst noch mal so viel Speicherplatzt auf der Festplatte wie die vorhandenen Dateien belegen, da die alten Dateien vorsichtshalber nicht gelöscht werden. Wenn du noch eine weitere Festplatte hast, kannst du den Pfad für das Backup dem entsprechend anpassen und die Dateien dorthin verschieben.

rkracker
03.07.06, 00:16
Hallo Teetrinker,

vielen vielen Dank für die Hilfe.

Mit deinem Skript kann ich nun doch mehrere mp4-Dateien auf einmal korrigieren.
Das ist schon mal eine große Erleichterung,
Ein bischen werde ich da noch in das Skipt eingreifen, sofern ich mit den Linux - Befehlen umgehen kann:
Die Dateien im Verzeichnis "new" kopiere ich wieder in das ursprüngliche Verzeichnis zurück:

mv new/"$NAME" "$NAME"

Aber das ist Feintuning.

Daß die Dateien als Backup ein 2. mal vorgehalten werden stört mich schon ein bisschen.

- Wenn ich das Backup als Unterverzeichnis des Originalen halte, habe ich den Vorteil, dass ich auf einen Blick erkennen kann (sowohl mit "Konqueror" und auch mit "Showimg") ob die Dateien bereits konvertiert sind oder nicht.
Damit halte ich aber nicht nur ca. 16 GB in dem Arbeitsverzeichnis vor, sondern auch auf der regelmäßigen Datensicherung sichere ich die Backup - Dateien mit.

- Wenn die Bachup - Dateien auf eine andere Festplatte kopiert werden tu ich mir mit den Backups leichter, ich kann aber nicht ohne weiteres erkennen, ob die Dateien bereits konvertiert worden sind.

Die erste Variante ist wohl besser --> nun ja, eine grössere Festplatte kommt nun schneller als geplant.

Ich danke Dir für deine Recherchen.
Ich bin froh dass Du dich, mit meinem Problem, so intensiev beschäftigt hast -- Hut ab !!!.
Den Sanyo - Technikern werde deine Hinweise zeigen, und hoffen, dass bald ein Uprgade das Problem bereinigt.

Danke nochmals