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

MKV zu MP4

Hallo Liebe SuSEjaner,
Ich als Debian Anwender wende mich in größter Not an euch ;)

Seit Tagen versuchen ich bereits eine Lösung für mein Problem zu finden. Da es eigentlich keinen Distributions Unterschied bei dem Problem gibt, wende ich mich auch an euch.

Folgende Situation ist gegeben.
Ich habe hier einen Debian 5.0 Lenny Rechner als Server laufen. Über 100Mbit netz ist meine Xbox 360 einen uShare UPnP Server angebunden. Nun habe ich auch eine ganze reihe von Video im MKV Containerformat vorliegen, die, die Xbox 360 allerdings nicht abspielen will. MS halt... In diesen Containerfiles sind einmal eine H.264 Video Spur und eine AAC Audio Spur. Mit beidem kann die Xbox 360 umgehen.
Das einzige Containerformat was volle Qualität Verspricht, außer MKV, ist MPEG4, also MP4/MOV ect.

Nun mache ich folgendes. Ich Exportiere die beiden Spuren als RAW und möchte diese danach wieder zusammen fügen, nur halt in einem MP4 Container. Dabei kommt es zu einem eigentlich unmöglichen Fehler.

Ich bin für alle Lösungsvorschläge offen. Außer das Komplette Konvertieren. Ich habe die Files bereits in Xvid Konvertiert was allerdings auf 720p beschränkt ist. Das ist mittlerweile eine Frage der Ehre :) Außerdem habe ich vor ein Distirbutions unabhängiges Programm zu schreiben was das Umwandeln für Konsolen der 7. Generation (PS3, Xbox 360 ect.), einfach und schnell handhabt.

Hier mal ein paar Detail infos

Was die Xbox 360 derzeit alles Versteht und Wiedergeben kann:
Code:
Abspielen lassen sich:
Codecs: DivX (XviD), H.264, MPEG-4, VC-1
Container: .avi, .divx, .mp4, .m4v, mp4v, .mov, .wmv

Welche Dateien können in welcher Konstellation (Container/Codec) wiedergegeben werden:
DivX / XviD: .avi, .divx
H.264: .mp4, .m4v, mp4v, .mov
MPEG-4: .mp4, .m4v, .mp4v, .mov
VC-1: .wmv

Welche Profile & Bitraten (Video/Audio) können wiedergegeben werden:
DivX / XviD:
Video: MPEG-4 Part 2, Simple & Advanced Simple Profile
Video-Bitrate: 5 Mbps mit einer max. Auflösung von 1280 x 720 bei 30fps
Audio: Dolby® Digital 2 Kanäle und 5.1 Kanäle, MP3
Audio-Bitrate: Keine Einschränkungen

H.264:
Video: Baseline, main, and high (up to Level 4.1) profiles.
Video-Bitrate: 10 Mbps mit einer max. Auflösung von 1920 x 1080 bei 30fps.
Audio: 2 channel AAC low complexity (LC)
Audio-Bitrate: Keine Einschränkungen

MPEG-4:
Video: Simple & Advanced Simple Profile
Video-Bitrate: 5 Mbps mit einer max. Auflösung von 1280 x 720 bei 30fps.
Audio: 2 channel AAC low complexity (LC)
Audio-Bitrate: Keine Einschränkungen

VC-1:
Video: WMV7 (WMV1), WMV8 (WMV2), WMV9 (WMV3), VC-1 (WVC1 oder WMVA) in simple, main, und advanced bis zu Level 3
Video-Bitrate: 15 Mbps mit einer max. Auflösung von 1920 x 1080 bei 30fps.
Audio: WMA7/8, WMA 9 Pro (stereo and 5.1), WMA lossless
Audio-Bitrate: Keine Einschränkungen
Informationen zu einer der MKV Datein durch FFMpeg:
Code:
FFmpeg version SVN-r13582, Copyright (c) 2000-2008 Fabrice Bellard, et al.
  configuration: --prefix=/usr --libdir=${prefix}/lib --shlibdir=${prefix}/lib --bindir=${prefix}/bin --incdir=${prefix}/include/ffmpeg --enable-shared --enable-libmp3lame --enable-gpl --enable-libfaad --mandir=${prefix}/share/man --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-libamr-nb --enable-libamr-wb --enable-x11grab --enable-libgsm --enable-libx264 --enable-liba52 --enable-libtheora --extra-cflags=-Wall -g -fPIC -DPIC --cc=ccache cc --enable-swscale --enable-libdc1394 --enable-nonfree --disable-mmx --disable-stripping --enable-avfilter --enable-libdirac --disable-decoder=libdirac --enable-libschroedinger --disable-encoder=libschroedinger --disable-altivec --disable-armv5te --disable-armv6 --disable-vis
  libavutil version: 49.7.0
  libavcodec version: 51.58.0
  libavformat version: 52.16.0
  libavdevice version: 52.0.0
  libavfilter version: 0.0.0
  built on May  3 2009 12:02:42, gcc: 4.3.2
[matroska @ 0xb7f0e640]Ignoring seekhead entry for ID=0x1549a966
[matroska @ 0xb7f0e640]Ignoring seekhead entry for ID=0x1654ae6b
[matroska @ 0xb7f0e640]Ignoring seekhead entry for ID=0x114d9b74
[matroska @ 0xb7f0e640]Unknown track header entry 0x55ee - ignoring
[matroska @ 0xb7f0e640]Unknown track header entry 0x55ee - ignoring
Input #0, matroska, from 'input.mkv':
  Duration: 02:41:42.43, start: 0.000000, bitrate: N/A
    Stream #0.0(eng): Video: h264, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 23.98 tb(r)
    Stream #0.1(ger): Audio: ac3, 48000 Hz, 5:1
Must supply at least one output file
MKV Extrahieren durch:
Code:
mkvextract tracks input.1080p.mkv --raw 1:output.h264
mkvextract tracks input.1080p.mkv --raw 2:output.aac
Zusammenführen für MPEG-4 plus Fehlermeldung:
Code:
MP4Box -new output.mp4 -add output.h264 -add output.aac
Cannot find H264 start code
Error importing output.h264: BitStream Not Compliant
Die frage die sich stellt ist, warum MP4Box diesen Fehler ausgibt obwohl die RAW offensichtlich, nach info durch FFmpeg, als fehlerhaft darstellt.
Ein versuch wo ich erst die Video Spur hab komplett neu Kodieren lassen in H.264 ist genau so klaglos gescheitert.

Ich hoffe das ich hier jemanden finde der einen Lösungsweg kennt.
Ich lasse mich auch gerne von MP4Box abbringen wenn das zum Ziel führt. Wichtig ist nur das es Distributions Unabhängig ist.

Vielen Dank im Vorraus
 
Die anderen Threads habe ich bereits gelesen, ich würde prompt folg. Befehl vorschlagen:
Code:
ffmpeg -i source.mkv -vcodec copy -acodec libfaac -ac 2 -ab 128k output.mp4
FFmpeg sollte die mp4-file direkt schreiben können, h264 kann die XBox offensichtlich, nur das AC3/Dolby ist vermutlich ein Problem, also machen wir es zu AAC, was in Verbindung mit H.264 passen sollte.
Jetzt sollte alles passen: mp4-Container mit H.264-Video und AAC-Audio.

Falls ich in den anderen Threads was überlesen haben sollte, tut mir leid. crosspostings grrr...
 
Oben