我试图通过JavaCV和FFmpegFrameGrabber类显示我的手机通过WiFi发送的图像。不幸的是,无论我设置哪种像素格式(尝试从0到65),我都会收到此错误。
Input #0, mjpeg, from 'http://IP:PORT/video':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 640x480 [SAR 1:1 DAR 2:3], 24 tbr, 1200k tbn, 24 tbc
[swscaler @ 0x7ff6cc3cba00] deprecated pixel format used, make sure you did set range correctly
这就是我创建FrameGrabber的方法:
FrameGrabber grabber = new FFmpegFrameGrabber("http://IP:PORT/video");
grabber.setFormat("mjpeg");
grabber.setVideoCodec(8);
grabber.setFrameRate(24);
然后获得框架:
frame = grabber.grab();
修改
显然这个错误来自ffmpeg库,并且与jpeg有关。
位于:libswscale / utils.c
第975行和第976行导致此错误:
if(srcFormat!=c->srcFormat || dstFormat!=c->dstFormat)
av_log(c, AV_LOG_WARNING, "deprecated pixel format used, make sure you did set range correctly\n");
不幸的是,我不够熟练删除/更改此行。所以我只是忽略这些消息,因为它不会影响程序。除非有人可以为mac重新编译ffmpeg的编辑版本:)
答案 0 :(得分:0)
您可以使用avutil.av_log_set_level(avutil.AV_LOG_ERROR)来过滤此警告。