Ich mache einige Erfahrungen mit dem YUV-Rohvideoformat. Dieses von mir erstellte YUV-Video (mit ppmtoy4m von mjpegtools, aus einer Reihe von Screenshots, die mit 24 fps aufgenommen wurden) funktioniert einwandfrei mit Totem, korrekter Rate, korrekten Farben und allem. Außerdem kann ffmpeg es problemlos in eine .mpg-Datei konvertieren. Aber Spieler und Mencoder gehen verloren. Ich verwende Version 1.0-0.47.svn20100703 in CentOS 6.
Ich habe es versucht...
mplayer video.yuv -demuxer rawvideo -rawvideo w=1152:h=864:format=i420
... aber das Ergebnis ist eine seltsame Bildverschiebung wie bei einem alten Fernseher mit einer deregulierten Horizontalen. Scheinbar interpretiert es die Frame-Header so, als wären sie Teil des Frames.
Die betreffipped YUV-Datei kann gefunden werden Hier (ACHTUNG: 34 MB komprimiert, 3,5 GB unkomprimiert!)
Die einzelnen ppm-Frames sind Hier (2,8 MB komprimiert, 557 MB unkomprimiert)
Das Video wurde mit generiert
cat *.ppm | ppmtoy4m -F 24:1 >video.yuv
Gibt es einen Parameter, den ich vermisse?
Antworten:
Ihr Problem ist, dass das y4m-Format nicht yuv ist. Wie bereits erwähnt, hat yuv KEINE Metadaten und es fehlen gerade Breiten- und Höheninformationen (ganz zu schweigen von 4: 2: 0 4: 2: 2 oder 4: 4: 4; 8-Bit-, 10-Bit-, 16-Bit-Varianten).
Ich fand eine Beschreibung des Y4M-Formats unter https://wiki.multimedia.cx/index.php?title=YUV4MPEG2 und es hat definitiv Metadaten.
Wenn Sie rohe yuv Ströme das wollen
mplayer
kann spielen,ppmtoy4m
erzeugt diese nicht. Möglicherweise können Sie verwendenWenn Sie stattdessen einen y4m-Stream abspielen möchten, muss jemand anderes die richtigen Argumente ausgraben
mplayer
(oder ein anderes Werkzeug).quelle