Unable to decode APP fields: Invalid data found when processing input
Hommus opened this issue · 5 comments
I'm receiving continuous errors in the terminal. Images are actually coming through but something is obviously not working:
[swscaler @ 0x55a6346780] No accelerated colorspace conversion found from yuv422p to rgb24.
[mjpeg @ 0x55a619f3f0] unable to decode APP fields: Invalid data found when processing input
[swscaler @ 0x55a6345f70] No accelerated colorspace conversion found from yuv422p to rgb24.
[mjpeg @ 0x55a619f3f0] unable to decode APP fields: Invalid data found when processing input
...
<launch>
<node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
<param name="video_device" value="/dev/video7" />
<param name="framerate" value="30" />
<param name="image_width" value="1920" />
<param name="image_height" value="1080" />
<param name="pixel_format" value="mjpeg" />
<param name="color_format" value="yuv422p" />
<param name="camera_frame_id" value="usb_cam" />
<param name="io_method" value="mmap"/>
</node>
</launch>
$ v4l2-ctl --list-formats-ext -d /dev/video6
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'H264' (compressed)
Name : H.264
Size: Discrete 3840x2160
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.033s (30.000 fps)
$ v4l2-ctl --list-formats-ext -d /dev/video7
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUYV 4:2:2
Size: Discrete 640x480
Interval: Discrete 0.067s (15.000 fps)
Index : 1
Type : Video Capture
Pixel Format: 'MJPG' (compressed)
Name : Motion-JPEG
Size: Discrete 1920x1080
Interval: Discrete 0.033s (30.000 fps)
it seems your device does not support the decoding.
which CPU arch do you use?
do you use x86
or x86_64
?
https://github.com/FFmpeg/FFmpeg/blob/master/libswscale/yuv2rgb.c#L682-L695
im not sure but it seems ffmpeg does not support swscale.
however, we can use hardware accelerated encoder/decoder for ffmpeg in jetson, probably.
@Hommus doing a quick google this is completely normal behavior from ffmpeg it looks like.
I don't think anything is wrong. If you'd like to stop seeing these errors just adjust the av_set_log_level
call to fatal
and those errors should not be printed (I've done this already on the ros2
branch).
cc @knorth55