使用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。
从ffmpeg版本4.0开始可用的setparams过滤器可以更改输入的颜色范围标志,而无需更改实际的像素数据。您可以使用它来将您的MJPEG流标记为有限范围。
setparams=range=limited
PS跳过重新编码视频,这很昂贵,并且会损失更多质量,请添加-c:v rawvideo
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句