2015-06-22 4 views
1

Я использую ffmpeg для создания видео с jpeg-изображений с использованием кодека mjpeg. Я использую эту командуНесовместимый формат пикселей YUV420P с mjpeg

ffmpeg -i frame%d.jpg -c:v mjpeg -pix_fmt yuv420p -q:v 1 -y out.mp4 

и я это предостерегавшее yuvj420p был выбран вместо. После прочтения этого формата пикселей я нашел его устаревшим для использования YUV420p и установил -color_range. Итак, я сделал это и установил color_range в 2, но ничего не изменилось.

ответ

4

Вы получаете предупреждение, потому что внутренний JPEG-кодировщик ffmpeg ожидает вход JPEG-диапазона и делает это с использованием старого (устаревшего) pixfmt YUVJ420P вместо нового метода (установка pixfmt = YUV420P с цветовым диапазоном).

Однако это подводит нас к сути этого вопроса: почему вы перекодируете изображения JPEG в JPEG? Вам не нужно! Вы можете просто использовать -c: v copy (вместо -c: v mjpeg), чтобы скопировать существующие изображения JPEG как есть в файл .mp4.

+0

Я хочу получить видео высокого качества для последующего использования, так как использование копии лучше, чем кодирование? – mohamed

+0

Хорошо, да, потому что вы никогда не добьетесь успеха, чем оригинал. Выход будет только когда-либо настолько хорошим, как вход, никогда не лучше, часто хуже, а иногда и намного хуже. Компромисс между качеством/битрейтом может быть лучше, если вы перекодируете (например, что делают оптимизаторы JPEG), но качество не будет отличаться. Если вы хотите перекодировать один и тот же кодек при одинаковом качестве, но лучше компромисс между качеством и битрейтом, подумайте об использовании -sameq. –

+0

Даже «-v: copy» может создавать «Unsupported Pixel Format» с ffmpeg. Это произошло с входом «yuvj444p». – MSalters

 Смежные вопросы

  • Нет связанных вопросов^_^