V4L2 difference between JPEG and MJPEG pixel formats

北战南征 提交于 2019-12-11 11:03:40

问题


What is the difference between these two pixel formats in v4l2 API: V4L2_PIX_FMT_JPEG and V4L2_PIX_FMT_MJPEG?

To me it seems that both should return JPG images when packets are read from a webcamera.


回答1:


I am interested in this question as well and I hope somebody can post an answer with some detail. Perhaps my observations below are useful to find an answer.

I noticed that there are some differences between the two settings.

The PI Noir camera (which I use on a Raspberry Pi 1 B) supports both formats, as can be seen by using v4l2-ctl --list-formats. If I use MJPG pixel format, the framerate is higher (around 30 fps) and the bytes 6,7,8,9 (indexed from 0) of each frame are 'J','F','I','F'. If I use JPEG, the framerate is lower (around 6 fps) and the same bytes are 'E','x','i','f'.

My logitech c910 supports MJPEG, but not JPEG, as seen from v4l2-ctl --list-format. However both pixel formats can be set with no error via C++. The images contain 'A','V','I','1' in those bytes. I cannot view them using an image viewer, but firefox and chrome browsers display them correctly. If I open them as video files from VLC I can also view them. If I use JPEG as pixel format, it also works and I get the same type of images.



来源:https://stackoverflow.com/questions/32836312/v4l2-difference-between-jpeg-and-mjpeg-pixel-formats

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!