• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

split mit unbekanntem output

Hi!

Das problem ist bestimmt leichter gelöst als wie ichs mir vorstelle, aber trotdem meine Frage:
wenn ich eine ca 3 GB große datei mit dem Befehl:

split --bytes=1967001600 Video.mpg

in 2 teileausplitte habe ich als output 2 dateien:

xaa und xab

Die Datei xaa ist richtigerweise vom Typ mpg aber die datei xab
hat in den Eigenschaften den Typ : unbekannt. und lasst sich auch nicht wiedergeben.
Das ist bei jeder anderen datei die ich spiltte auch so.
Das erste outputfile ist vom typ der zu splittenden datei.
Die nächsten datein (xab,xac,...) sind 'unbekannt' und lassen sich ncicht öffnen.

Woran liegt das?

Danke
lxuserrave
 

TeXpert

Guru
weil es keine "sauberen" Dateien sind.

Eine Datei besteht (ja, ich verallgemeinere jetzt absolut ;) ) aus vielen Blöcken, die besondere Bedeutungen haben. Diese Blöcke liegen jetzt entweder an bestimmten Stellen in dem FIle ((R I F F)-Header bei Wavs oder die letzten 128 Byte eines MP3s für den ID3-Version1-Tag.

d.h. in den durchgeschnittenen Dateien fehlen jetzt bei der 2. bis n. Datei die entsprechenden header.
Weiterhin hast Du wahrscheinlihc willkürlich geschnitten und somit wird das letzte Frame in der 1. Datei auch nicht mehr funktionieren, da hier das entsprechende Ende fehlt. Weitere Dateiformatinfos gibts auch detaillierter im Netz
 
Is egal, den zweiten Teil müsste jeder MPEG-Player trotzdem noch abspielen können, weil eigentlich - genau wie bei den meisten Streamformaten, von mp3 bis ogg - der ungültige Teil übersprungen wird, was nur ein paar Bytes sein werden. `file` wird wohl nicht soweit kommen wie ein darauf angesetzter Mediaplayer.
 

TeXpert

Guru
jenachem, wie lange das letzte I-Frame im Mpeg-Stream weg ist.. gibts aber nur Klötzchen zu sehen
 

regexer

Advanced Hacker
jengelh schrieb:
Is egal, den zweiten Teil müsste jeder MPEG-Player trotzdem noch abspielen können,
Ohne jetzt ein Experte auf diesem Gebiet zu sein, wage ich dennoch zu behaupten: Auch mpeg-Files haben irgendwelche Informationen im Datei-Header ...
 

TeXpert

Guru
wenn das programm intelligent (vlc könnte das können) dann sollte eine komplette GOP-Struktur ausreichen um wieder Synchron alles abspielen zu können, evtl. muss man dem Tool sagen, dass es ein MPEG-Stream ist... aber die GOP kann sehr lang, sein und je nachdem wo Du geschnitten hast, kann es da dann zu Problemen kommen.

Aber das auf alle Player zu pauschalisieren würde ich wahrscheinlich auch nicht :)
 

panamajo

Guru
jengelh schrieb:
... der ungültige Teil übersprungen wird, was nur ein paar Bytes sein werden. `file` wird wohl nicht soweit kommen wie ein darauf angesetzter Mediaplayer.
Das sehe ich auch so. Wobei "ein paar Bytes" natürlich relativ ist...
Aber zurück zum OP:
lxuserrave schrieb:
split --bytes=1967001600 Video.mpg
lxuserrave, "split" ist nicht der richtige Befehl um Mediadaten zu zerteilen! split hat keine Ahnung was es zerteilen soll, es kümmert sich nicht um Dateiheader, Streaming etc. sondern hackt einfach ab. D.h. das von dir beschriebene Problem mit den einzelnen Teilen ist keineswegs überraschend sondern war zu erwarten. Im Falle von MPEG wirst du Teile weiterhin ansehen können (mit Verlust zu Beginn und am Ende), bei anderen Medien kann aber auch alles futsch sein!
 

oc2pus

Ultimate Guru
nutze einfach das korrekte Programm zum Splitten :)

mpgtx ist dein Freund.
http://mpgtx.sourceforge.net/

Code:
mpgtx a command line MPEG audio/video/system file toolbox, that slices and joins audio and video files, including MPEG1, MPEG2 and MP3.
 
mpgtx was designed with the good old Unix philosophy in mind : do few but do it well and provide end user an austary yet powerfull command line interface.
At least this was the goal. Reality is different, and it's available for you to try.
mpgtx is released under the GPL license.

gibt es auch als RPM in meinem Repository:
http://ftp4.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386/RPMS.suser-oc2pus/
http://ftp4.gwdg.de/pub/linux/suse/apt/SuSE/9.3-i386/RPMS.suser-oc2pus/
http://ftp4.gwdg.de/pub/linux/suse/apt/SuSE/9.2-i386/RPMS.suser-oc2pus/
http://ftp4.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/RPMS.suser-oc2pus/
 
OP
L

lxuserrave

Newbie
Ja. Danke.
Habs mir runtergeladen und installiert.
aber immer wenn ich was von wegen:

mpgtx -s Datei.mpg

eingebe dann passiert nix außer der Prompt:

Abgebrochen.

Das ist bestimmt nur ein dummer fehler meinerseits, oder?

Rave
 
OP
L

lxuserrave

Newbie
Doch doch, die man page hab ich gelesen. Das kannst du mir nicht anhängen. Ich habs genauso gemacht wie im Beispiel.
Auch wenn ich nur eingebe mpgtx -i kommt ein einfaches
"Abgebrochen".

Rave
 
Oben