значения rawvideo и rgb32 передаются в FFmpeg - PullRequest
11 голосов
/ 30 августа 2011

Я конвертирую файл в формат PNG с помощью этого вызова:

ffmpeg.exe -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s <width>x<height> -i infile -f image2 -vcodec png out.png

Я хочу использовать конвертер, который можно связать или скомпилировать в коммерческий продукт с закрытым исходным кодом, в отличие от FFmpeg, поэтому мне нужно понять формат входного файла, который я передаю.

Итак, что означает rawvideo для FFmpeg?

FFmpeg определяет, какой тип необработанного формата имеет входной файл, или rawvideo обозначает что-то отличное?

Что означает rgb32 здесь?

Размер входного файла чуть больше (width * height * 8) байтов.

1 Ответ

10 голосов
/ 30 августа 2011

Обычно видеофайл содержит видеопоток (формат которого указан с помощью -vcodec), встроенный в медиа-контейнер (например, mp4, mkv, wav и т. Д.).Параметр -f используется для указания формата контейнера.-f rawvideo - это в основном фиктивная настройка, которая сообщает ffmpeg, что ваше видео находится не в каком-либо контейнере.

-vcodec rawvideo означает, что видеоданные в контейнере не сжаты.Однако существует много способов хранения несжатого видео, поэтому необходимо указать параметр -pix_fmt.В вашем случае -pix_fmt rgb32 говорит, что каждый пиксель в ваших необработанных видеоданных использует 32 бита (1 байт для красного, зеленого и синего, а оставшийся байт игнорируется).

Для получения дополнительной информации о том, чтоЗначения опций см. в документации ffmpeg .

...