1

С помощью IP-камеры, захвата потока h264 картинка выглядит нормально. Хотите использовать поток MJPEG, но изображение размыто, отсутствует контрастность, черный цвет выглядит темно-серым, а белый - светло-серым. Цветность выглядит нормально (ярко-синий - матово-синий, желтый - желтый и т.д.). Проблема очевидна в VLC, FFplay, FFmpeg.

ffplay rtsp://cam/h264/stream

Stream #0:0: Video: h264 (Baseline), yuv420p(progressive), 1280x720, 30 fps, 30 tbr, 90k tbn, 180k tbc

ffplay rtsp://cam/mjpeg/stream

Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 1280x720 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 90k tbn, 90k tbc

Если камера неправильно сообщает свой масштаб или цветовое пространство, есть ли способы переопределить? Я попробовал это, никак не повлияло на картинку:

ffmpeg -i rtsp://cam/mjpeg/stream -vf scale=in_range=tv  -f matroska - | ffplay -

Любой совет приветствуется!

Моя версия ffmpeg обновлена до 4.1-win64-static, была 3.4.

1 ответ1

0

Фильтр setparams , доступный начиная с версии ffmpeg 4.0, может изменять флаг диапазона цветов ввода, не изменяя фактические данные пикселей. Вы можете использовать его для пометки вашего потока MJPEG как ограниченного диапазона.

setparams=range=limited

PS Пропустите перекодирование видео, это дорого и потеряет немного больше качества, добавьте -c:v rawvideo .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .