Можно ли изменить масштаб и / или настроить цветовое пространство потока IP-камеры, чтобы улучшить качество изображения MJPEG?
При использовании 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 ответ
Фильтр setparams, доступный начиная с версии ffmpeg 4.0, может изменять флаг цветового диапазона ввода, не изменяя фактические данные пикселей. Вы можете использовать его, чтобы пометить ваш поток MJPEG как ограниченный диапазон.
setparams=range=limited
PS Пропустите перекодировку видео, это дорого и потеряет немного больше качества, добавьте -c:v rawvideo
,