最后,我发现这是一个与ffmpeg相关的问题。可以在ffmpeg / libavcodec / mjpegdec.c的源代码中找到错误消息“在图像中找不到JPEG数据”。
由于我在ubuntu 18.04中成功提取了功能而没有任何错误,因此我检查了opencv的构建信息,发现libavcodec的版本不同。 (ubuntu 18.04中57.107.100,ubuntu 16.04中56.60.100)。手动编译ffmpeg并使用新版本的libavcodec解决了我的问题。