[FFmpeg-trac] #8413(avformat:new): Demuxing embedded H.264 frames from mjpeg stream from Logitech webcam

FFmpeg trac at avcodec.org
Thu Dec 5 02:23:44 EET 2019

#8413: Demuxing embedded H.264 frames from mjpeg stream from Logitech webcam
             Reporter:  cmeister2    |                    Owner:
                 Type:  enhancement  |                   Status:  new
             Priority:  normal       |                Component:  avformat
              Version:  git-master   |               Resolution:
             Keywords:  mjpeg h264   |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |

Comment (by cmeister2):

 Following up:

 * I plugged in the other Logitech C920 camera that I bought, and that
 exposes H.264 - so my immediate need here has suddenly been met. However,
 I wanted to pursue this a bit more for future persons who are hitting
 issues like this.
 * Comparing the working camera and the non-working camera:
   * the working camera has USB ID 046d:082d
   * the non-working camera has USB ID 046d:0892
   * the non-working camera does not expose the H.264 codec control
 Extension GUID (A29E7641-DE04-47e3-8B2B-F4341AFF003B, as defined in [http
 this document which details exactly how the MJPEG smuggling works], but
 the working camera does.
 * I plugged the -0892 camera into my Windows PC to see if it exposed H.264
 or exposed H.264 over MJPEG - it did not.
 * I have raised a ticket against Logitech to ask them whether this camera
 even has H.264 natively or not; I don't know if I'll get back a response.

 At this point, I'm unsure as to whether I can actually generate a video
 file with the desired behaviour; so unsure as to whether you want to keep
 this enhancement request open.

 Other notes:
 * The code at [https://gl.swmansion.com/bartosz.blaszkow/ffmpeg-
 uvcvideo/tree/release/4.0] has support for doing UVCX_VIDEO_CONFIG_PROBE
 (which I think is part of turning on H.264 support here)
 * My guess for how you ask the camera to generate MJPEG in a container is
 to twiddle some of the bits in `bStreamMuxOption` with
 UVCX_VIDEO_CONFIG_COMMIT (Bit 6: MJPEG payload used as a container), but
 without a camera to test on, I'm just guessing.

Ticket URL: <https://trac.ffmpeg.org/ticket/8413#comment:7>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker

More information about the FFmpeg-trac mailing list