U
user4android
Neues Mitglied
- 25
Für alle die nicht gerne lesen wollen in Kurzform:
Wer bisher Probleme mit seinen Videos (mkv/h.264) hatte (ruckeln, kein Ton..), sollte mal den DicePlayer ausprobieren.
Zum Testen einfach mal ein Sample Video downloaden und probieren
Beispiel: http://tomtom2k5.free.fr/mkv/720p/pearlharbor_x264hd-sample.mkv
(weitere) Index of /mkv/720p (das sind nicht meine Beispiel-Videos und auch der Server ist nicht von mir)
Codec Informationen:
Sollte das Video bei eurem Player Ruckeln oder ohne Ton abgespielt werden, dann einfach mal den Player versuchen:
https://market.android.com/details?id=com.inisoft.mediaplayer.trial [DicePlayer]
(bei manchen Videos bleibt es am Anfang die ersten 10sec. schwarz)
Für diejenigen die an ein wenig HintergrundInfos interessiert sind, können weiterlesen:
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
Manchmal liest man, dass 720p oder auch 1080p mkv Videos problemlos abspielbar sind, dann doch wieder nicht.
Woran liegt das?
Woran liegt das?
1. MKV ein Containerformat
2. Der Video-CoDec (h.264)
. 2.a. h.264: was sind Profile und Level
. 2.b. Ein Beispiel (in Adobe Premiere)
3. Die Hardware-Unterstützung (Hardware-Decoding/Videobeschleunigung)
4. Das Problem
5. Weiteres
Deshalb zuerst einmal ein paar kleine Grundlagen.2. Der Video-CoDec (h.264)
. 2.a. h.264: was sind Profile und Level
. 2.b. Ein Beispiel (in Adobe Premiere)
3. Die Hardware-Unterstützung (Hardware-Decoding/Videobeschleunigung)
4. Das Problem
5. Weiteres
1. Mkv (Matroska) ist nichts anderes als ein Containerformat, ähnlich wie das altgediente AVI.
In so einem Container kann eine Videospur, eine Audiospur, Untertitel (=>auch jeweils mehrere) enthalten sein. Die Videospur selbst, die in einer mkv Datei (Container) steckt, kann mit einem der folgenden Videocodecs kodiert worden sein: MPEG-1, MPEG-2, MPEG-4, H.264, RealVideo, WMV, Theora, Dirac. Bei der Audiospur sind unter anderem folgende Audiocodecs erlaubt: AAC, AC3, DTS, WAV, MP3, Vorbis, FLAC.
Schon jetzt sollte einem klar sein, dass also mkv Video nicht gleich mkv Video ist, auch wenn vielleicht die Auflösung 720p identisch ist. (kann unter Umständen schon das einzige sein, was zwei mkv Filme gemeinsam haben).
Das kann z.B. der Grund sein, warum sich das eine 720p Video mit demselben Player butterweich abspielen lässt und das andere nicht oder wieso auf einmal bei einem mkv 720p Video der Ton fehlt => dazu später mehr)
2. Der Videocodec
Der wohl zurzeit effizienteste und am meisten verwendete VideoCodec ist H.264 (MPEG-4 AVC)
[Bei einer mkv Datei lautet die Codec-ID für h.264: V_MPEG4/ISO/AVC
Der H.264 Codec bietet einige Parameter beim Erstellen (codieren) eines Videos an. Diese beeinflussen dann direkt/indirekt die Qualität, Größe, Bitrate des Videos und vor allem dann auch die benötigte Rechenleistung die gebraucht wird, um das Video auf dem Endgerät (ruckelfrei) abspielen zu können. Da das Ganze dann doch schnell unübersichtlich wird mit den gesamten Einstellmöglichkeiten,H.264 erreicht typischerweise eine etwa dreimal so hohe Codiereffizienz wie H.262 (MPEG-2) und ist auch für hoch aufgelöste Bilddaten (z. B. HDTV) ausgelegt. Das heißt, vergleichbare Qualität ist etwa bei einem Drittel der MPEG-2-Datenmenge zu erreichen. Allerdings ist der Rechenaufwand auch um den Faktor 2 bis 3 höher.
H.264 ? Wikipedia
[kann z.B. der qualitätssteigernde, aber rechenintensive, arithmetische Kodierer "CABAC Entropy Coding" aktiviert werden, wenn das Video auf Gerät XY abgespielt werden soll? Oder soll doch nur das einfachere und nicht so rechenintensive Kodierverfahren CAVLC zum Einsatz kommen.]
2.a hat man sich entschlossen das Ganze zu Profilen zusammenzufassen. (Hauptsächlich: "Baseline", "Main", "High" => siehe nachfolgende Spaltenüberschriften)
Neben den Profilen gibt es dann noch Level. "Dieser (Level) ist umso höher, je größer die Bitrate des Videos ist."
2.b. Um ein konkretes Beispiel zu machen:
Apple gibt für sein iPad folgendes an =>
Unterstützte Videoformate: H.264 Video: bis zu 720p, 30 Bilder pro Sekunde, Main Profile Level 3.1
Wenn man oben in der Tabelle nachschaut, dann sieht man, welche features für das Main Profil möglich/erlaubt sind und welche nicht.
Anhand des Levels 3.1 in Kombination mit dem Profil Main (Basline/Extended/Main), sieht man die mögliche Auflösung/Bildrate dieses Levels und die Videobitrate (14 Mbit/s).
Viele Videoschnittprogramme beinhalten meistens bereits vorgefertigte "Vorgaben" für unterschiedliche Geräte. Hier z.B. bei Adobe Premiere für das Ipad:
Bei Adobe hat man versucht die Einstellungen ins Deutsche zu übersetzen, deshalb klingen sie etwas verwirrend:
"Profil: Hauptoption" <=> "Profil: main"
"Pegel: 3,1" <=> "Level: 3.1"
Die genauen Spezifikationen für das Transformer (nVidia Tegra 2) kenne ich leider nicht. Was aber auf jeden Fall möglich sein sollte, ist: High Profile 720p und Main Profile 1080p
3. Die Hardware-Unterstützung (Hardware-Decoding/Videobeschleunigung)
Wie oben bereits erwähnt, ist das Abspielen eines h.264 codierten Videos (egal in welchem VideoContainer dieser nun steckt) ziemlich rechenintensiv. Selbst bei (kleineren) Desktop PCs ist damit die CPU alleine überfordert.
Beispiel (AMD E-350):
Ähnlich verhält es sich beim Transformer. Bei einem (qualitativen) 720p Video (h.264) ist das System mit einem reinem Software Codec überfordert (Ruckler).beispielsweise "James Bond: Ein Quantum Trost" zu einer schnelleren Dia-Show Filmgenuss mag da nicht aufkommen. Mit aktiver Hardware-Beschleunigung sind hingegen alle Blu-Rays problemlos abspielbar.
Ein Lückenfüller mit Ambitionen - AMDs Brazos-Plattform im Test - Praxis: Video-Beschleunigung (Seite 14)
Selbst das Übertakten hilft da nicht sonderlich viel (ich habe es mit 1,4GHz versucht, brachte keine wirkliche Verbesserung. 1,6GHz habe ich dann erst gar nicht versucht.)
Bei manchen Playern lässt sich der Decode Mode manuell einstellen.
Beispiel Vital Player:
So gesehen kommt also für ein qualitativ höherwertiges h.264 Video (sprich höheres Profil+Level) nur das Abspielen mittels Hardware Codec in Frage.
(Der Software Codec (ffmpeg) spielt zwar fast alles ab, kommt aber bei "rechenintensiven" Videos ins stocken=> zu geringe CPU Leistung)
4. Das Problem:
Wenn ein Video, nehmen wir mal an:
in einem mkv Container
die Videospur 720p, Profil High, Level 4.1 ist,
dann sollte das doch von jedem Player mit HardwareUnterstützung problemlos abgespielt werden können. J(aN)ein. Wenn die Audio Spur im (mkv) Container mit AAC kodiert wurde, dann ja. Wenn es jedoch eine AC3 Tonspur ist, dann hat bis jetzt jeder Player von hardware decodieren auf software decodieren umgestellt und dann war das System wieder überlastet und hat geruckelt. Hat man bei einem Player die Option (falls vorhanden) nur Hardware Codec, dann wurde die Videospur ruckelfrei abgespielt, aber eben kein Ton wiedergegeben.
Der einzige Player bei dem es nicht so ist (der mir bis jetzt bekannt ist!), ist der DicePlayer.
(https://market.android.com/details?id=com.inisoft.mediaplayer.trial)
--------------
5. Weiteres
Welcher Video/Audio Codec steckt nun in einem VideoKontainer alla mkv? Das kann z.B. am PC mit dem tool ausgelesen werden: MediaInfo (siehe meinen ersten Screenshoot)
Ich habe ein Video das mit keinem Player abgespielt werden kann, dann hilft nur das erneute codieren des Videos. Eine Anleitung mit downloadbaren Voreinstellungen für das Programm Handbreak findet man hier:
[GUIDE] 720p Handbrake preset for TF101 (HC3.1 Update) - xda-developers
Hier sind auch zwei sample Videos zum downloaden/testen.
Ich möchte nur die Tonspur in einem mkv Container "ändern", jedoch nicht die Videospur erneut "codieren",
dann kann dieses tool hilfreich sein:
GOTSent 0.24 Beta 8 - VideoHelp.com Downloads
[INFO] Transcoding MKV to MP4 quick and easy way. - xda-developers
ODER:
Home | XenonMKV
MKV to Mp4 for XOOM WITHOUT Converting Video - xda-developers
Diese tools haben den Vorteil, dass die Videospur unangetastet bleibt und somit auch eine Menge Zeit gespart wird.
Zuletzt bearbeitet: