FFmpegFrameGrabber不推荐使用像素格式错误

时间:2015-01-05 20:56:37

标签: video ffmpeg javacv

我试图通过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的编辑版本:)

1 个答案:

答案 0 :(得分:0)

您可以使用avutil.av_log_set_level(avutil.AV_LOG_ERROR)来过滤此警告。