Hello,
I am trying to get a remote USB UVC camera to work via VLC streaming and I am getting the following errors from zmc:
Jan 5 11:21:58 altamira zmdc[29640]: INF [Starting pending process, zmc -m 1]
Jan 5 11:21:58 altamira zmdc[29640]: INF ['zmc -m 1' starting at 13/01/05 11:21:58, pid = 29750]
Jan 5 11:21:58 altamira zmdc[29750]: INF ['zmc -m 1' started at 13/01/05 11:21:58]
Jan 5 11:21:58 altamira zmc_m1[29750]: INF [Starting Capture]
Jan 5 11:21:58 altamira zmc_m1[29750]: ERR [Huffman table 0x00 was not defined]
Jan 5 11:21:58 altamira zmc_m1[29750]: ERR [Unable to decode jpeg]
Jan 5 11:21:58 altamira zmc_m1[29750]: ERR [Failed to capture image from monitor 1 (0/1)]
As seen in these messages, the problem is that the JPEG decoder does not find a Huffman table. Based on what I have been able to gather, it is normal for an MJPG stream to not have Huffman tables since they unnecessailly increase bandwidth. Instead, the application should (apparently) add the Huffman tables on the fly. This is what mjpg_streamer does after grabbing images from the MJPG stream, and using mjpg_streamer works perfectly with ZM.
Should ZM not add a Huffman table to JPEGs that do not contain one to improve MJPG compatibility and bandwidth utilization? I am looking into adding this support myself but I am not familiar with the code base so if someone could point me in the right direction that would be appreciated.
In case anyone wants to try, the VLC command line I am using for streaming is:
cvlc -vvv v4l2:// :v4l2-dev=/dev/video1 :v4l2-chroma=MJPG :v4l2-fps=5.0 :v4l2-width=320 :v4l2-height=240 :sout='#std{access=http{mime=multipart/x-mixed-replace; boundary=--7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=:8080/webcam.mjpg}'
Then define a remote monitor on port TCP/8080 and the path as webcam.mjpg.
Thanks in advance for any pointers.
Eloy Paris.-
P.S. Sure, I can use mjpg_streamer, as it works, but things could be a bit more efficient if the MJPG stream is sent without Huffman tables, as mjpg_stream is doing.