Ich versuche, die Auflösung eines Rohvideos mit avconv zu reduzieren. Die Ausgabe muss das gleiche Rohvideoformat beibehalten, da ich es zu einem späteren Zeitpunkt in ein anderes Programm laden muss, das extrem wählerisch ist und keine andere Art von Eingabe akzeptiert. Nun habe ich versucht,
avconv -i myvideo.avi -s 88x72 -vcodec rawvideo myvideo-small.avi
Und das erzeugt das verkleinerte Video zwar, aber es scheint, als sei das Format nicht genau dasselbe. avconv sagt, dass der Lese-Input
Stream #0.0: Video: rawvideo, pal8, 352x288, 30 fps, 30 tbr, 30 tbn
während die erzeugte Ausgabe
Stream #0.0: Video: rawvideo, yuv420p, 88x72, q=2-31, 200 kb/s, 30 tbn, 30 tbc
Obwohl beides Rawvideo ist, ist die Eingabe „Pal8“ und die Ausgabe „Yuv420p“. Ich kenne die Unterschiede zwischen diesen beiden Formaten nicht, aber meine Ausgabe muss genau das gleiche Format wie die Eingabe haben. Wie kann das erreicht werden?
Antwort1
Mir scheint, dass avconv
derzeit nur PAL8 als Eingabe unterstützt wird. Um dies zu überprüfen, können Sie Folgendes ausführen:
$ avconv -pix_fmts |grep pal8
meine Ausgabe ist:
avconv version v12_dev0-498-g2e09359, Copyright (c) 2000-2014 the Libav developers
built on Dec 5 2014 09:32:02 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
I..P. pal8 1 8
Die Legende zum ersten Teil lautet:
I.... = Supported Input format for conversion
.O... = Supported Output format for conversion
..H.. = Hardware accelerated format
...P. = Paletted format
....B = Bitstream format
Pal8 kann also gelesen, aber nicht geschrieben werden. Das bedeutet, dass Sie keinen der Streams aktiv in dieses Format kodieren können, was Sie jedoch tun müssen, wenn Sie die Größe des Frames ändern möchten.
Wenn Sie neben PAL8 ein anderes Pixelformat finden, das Ihre „wählerische“ Software akzeptiert und das mit kodiert werden kann avconv
, können Sie dieses spezielle Format mit der -pix_fmt
folgenden Option auswählen:
avconv -i in.avi -s 88x72 -pix_fmt FORMAT -c:v rawvideo out.avi