Hallo,
ich hoffe, ihr könnt mir einen Tip zur Lösung nachstehend beschriebenen Problems geben:
Ich habe mit FLV-Extract aus einem Film im FLV-Format Video- und Audiospur extrahiert, die ich in einen Matroska-Container überführen will, damit ich den Film auch mit einer Mediatank abspielen kann und die "Qualität" aus dem FLV erhalten bleibt bzw. nicht reencodet wird.
Als Ergebnis spuckt FLV-Extract die Dateien film.264 und film.aac aus.
GSpot gibt zu film.flv an:
File Type: Flash Video (.FLV)
Mime Type: video/x-flv
Compatibility Warning:
Unknown Flash FLV format
Codec: ????
Name: Flash Video Unknown Type
Pics: 29.989
Frames: 29.989
GSpot gibt zu dem extrahierten film.264 an:
MPEG Elementary Video << { 1 vid }
Codec: H264
Name: H.264/AVC
GSpot gibt zu dem extrahieren film.aac an:
File Type: Elementary AAC Audio, ADTS hdrs
Mime Type: audio/mpeg
MPEG-2 LC Profile
44100Hz 98 kb/s tot , stereo (2/0)
VLC-Player zeigt mir allerdings beim Abspielen der FLV-Datei eine Framerate von 29,917 an, also schon mal eine andere Framerate als GSpot (vgl.oben: 29,989).
Wenn ich nun mit MKV-Merge die film.264 und film.aac mergen will, muß ich unter "Formatspezifische Optionen" die BPS angeben. Egal, ob ich dann dort 29,917 oder 29,989 angebe: Bei der erzeugten mkv-Filmdatei laufen anschließend Film und Ton zunehmend auseinander. Auch 30,00 habe ich probiert, ohne Erfolg.
Bei 30,0 kommt der Ton bzw. die Worte später als die Lippenbewegungen des Schauspielers, was sich mit zunehmender Abspielzeit immer mehr verstärkt.
Bei 29,989 kommt der Ton verzögert, also NACH den Lippenbewegungen der Schauspieler. Erwähneswert ist vielleicht noch, dass VLC-Player 29,989503 anzeigt und nicht die "glatt" eingegebenen 29,989.
Gebe ich bei MKVMerge die o.a. 29,917 ein, läuft der Ton zeitlich früher als die Lippenbewegungen. Auch dieser Effekt verstärkt sich im Laufe der Abspielzeit immer mehr. VLC-Player zeigt unter Codecdetails beim Abspielen statt der 29,917 eine Framerate von 29,917726 an.
Kann mir jemand von Euch Hinweise zur Lösung des Problems geben?
Es spricht ja einiges dafür, dass es an der Framerate liegt und "nur" der richtige Wert zwischen 29,917 und 29,989 gefunden werden muß. Wie aber diesen Wert finden, wenn GSpot und Mediaplayer die o.a. Werte ausgeben?
Ehrlich gesagt, scheint mir der Weg über eine manuelle "Intervallschachtelung" ziemlich aufwendig ;-).
Danke im voraus und freundliche Grüße
testit