Я пытаюсь уменьшить разрешение некоторого необработанного видео с помощью avconv. Вывод должен сохранить тот же необработанный формат видео, как на более позднем этапе я должен загрузить его в другую программу, которая чрезвычайно придирчива и не примет никакой другой вид входа. Теперь, я попытался делать
avconv -i myvideo.avi -s 88x72 -vcodec rawvideo myvideo-small.avi
Это производит уменьшенное видео хорошо, но кажется, что формат не точно тот же. avconv говорит, что вход чтения
Stream #0.0: Video: rawvideo, pal8, 352x288, 30 fps, 30 tbr, 30 tbn
в то время как произведенный вывод
Stream #0.0: Video: rawvideo, yuv420p, 88x72, q=2-31, 200 kb/s, 30 tbn, 30 tbc
Даже при том, что и rawvideo, вход является "pal8" и выводом, "yuv420p". Я не знаю о различиях между этими двумя форматами, но мне нужен мой вывод для сохранения точно того же формата как вход. Как это может быть сделано?
Кажется мне, что avconv
в это время только поддерживает pal8 для входа. Чтобы проверить, что можно работать:
$ avconv -pix_fmts |grep pal8
мой вывод:
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
легенда для первой части:
I.... = Supported Input format for conversion
.O... = Supported Output format for conversion
..H.. = Hardware accelerated format
...P. = Paletted format
....B = Bitstream format
, Таким образом, pal8 может быть считан, но не записан. Это означает, что нет никакого способа для Вас активно закодировать любой из потоков в этот формат, который является чем-то, что необходимо сделать, если Вы намереваетесь изменить размер кадра.
при нахождении другого формата пикселя, который "придирчивое" программное обеспечение примет помимо pal8 и это может быть закодировано avconv
, можно выбрать тот конкретный формат с -pix_fmt
опция:
avconv -i in.avi -s 88x72 -pix_fmt FORMAT -c:v rawvideo out.avi