Solved Rock64, problems with usb webcam setup

System: Rock64 1GB, FreeBSD 13.0 Release

What I'm trying to do:
Use ffmpeg to pull a single image from a usb webcam and write it too a directory.

Software:
libv4l-1.23.0
v4l-utils-1.23.0
v4l_compat-1.23.0
ffmpeg-4.4.2
webcamd-5.17.1.0

The Issue:
I can use the same USB camera from my other FreeBSD box(my laptop) running 13.0 Stable. I'm also using the same version of all the software with the same configuration options and it works. The setup on the Rock64 however produces broken images with mostly solid green images and a slice of what the image should be at the top. The ffmpeg options I use on the command line are both the same on both systems.

I'm looking for a solution and more information on what might be causing the issue. My best guess at this point is that for some reason the camera usb resets? causing it to default back to the yuvj422p pixel format hence the mostly green image.

Here is a image I captured from the usb webcam on the ROCK64 using
ffmpeg -y -f v4l2 -vcodec mjpeg -s 1280x720 -i /dev/video0 -frames:v 1 -f singlejpeg ./frame.jpeg

frame.jpeg


What I've tried:
  • rebooting
  • manually running webcamd
  • changing the v4l2-ctl settings to change the resolution and a few other settings
  • using usbconfig to force power on just in case.
  • Trying every ffmpeg option I can think of or find in the documentation
  • building webcamd and ffmpeg ports to ensure the same config as my laptop setup.
  • Searching other forms for people with a similar issues
related posts I've read:
output-shows-green-screen-only
ffmpeg-images-are-green
Displaying-green-color-video
corrupt-frame-from


Output:

usbconfig
Code:
ugen3.1: <Generic EHCI root HUB> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen2.1: <DWCOTG OTG Root HUB> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.1: <Synopsys XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen4.1: <Generic OHCI root HUB> at usbus4, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE (0mA)
ugen2.2: <HD USB Camera HD USB Camera> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen4.2: <vendor 0x1a86 USB Serial> at usbus4, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (98mA)
ugen0.2: <Innostor PenDrive> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (76mA)
dmesg | grep usb
Code:
usbus0: trying to attach
usbus0 on xhci0
usbus2 on dwcotg0
usbus3: EHCI version 1.0
usbus3 on ehci0
usbus4 on ohci0
usbus0: 5.0Gbps Super Speed USB v3.0
usbus2: 480Mbps High Speed USB v2.0
usbus3: 480Mbps High Speed USB v2.0
usbus4: 12Mbps Full Speed USB v1.0
ugen3.1: <Generic EHCI root HUB> at usbus3
uhub0 on usbus3
uhub0: <Generic EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus3
ugen2.1: <DWCOTG OTG Root HUB> at usbus2
uhub1 on usbus2
uhub1: <DWCOTG OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
ugen0.1: <Synopsys XHCI root HUB> at usbus0
uhub2 on usbus0
uhub2: <Synopsys XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
ugen4.1: <Generic OHCI root HUB> at usbus4
uhub3 on usbus4
uhub3: <Generic OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus4
ugen2.2: <HD USB Camera HD USB Camera> at usbus2
ugen4.2: <vendor 0x1a86 USB Serial> at usbus4
usbd_setup_device_desc: getting device descriptor at addr 1 failed, USB_ERR_IOERROR
ugen0.2: <Innostor PenDrive> at usbus0
umass0: <Innostor PenDrive, class 0/0, rev 3.10/0.01, addr 1> on usbus0
uchcom0: <vendor 0x1a86 USB Serial, rev 1.10/2.64, addr 2> on usbus4


sysrc | grep cam
Code:
webcamd_device_0_name: HD USB Camera HD USB Camera
webcamd_enable: YES

kldstat
Code:
Id Refs Address                Size Name
 1   16 0xffff000000000000  12092d8 kernel
 2    1 0xffff00000120a000    25808 umodem.ko
 3    3 0xffff000001230000    28698 ucom.ko
 4    1 0xffff000001259000    298d0 cuse.ko
 5    1 0xffff0000cb400000    22000 dwwdt.ko
 6    1 0xffff0000cb422000    24000 uchcom.ko
 7    1 0xffff0000cb446000    22000 mac_ntpd.ko

v4l2-ctl --all
Code:
Driver Info:
    Driver name      : uvcvideo
    Card type        : HD USB Camera: HD USB Camera
    Bus info         : usb-/dev/usb-/dev/usb
    Driver version   : 5.17.0
    Capabilities     : 0x84a00001
        Video Capture
        Metadata Capture
        Streaming
        Extended Pix Format
        Device Capabilities
    Device Caps      : 0x04200001
        Video Capture
        Streaming
        Extended Pix Format
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
    Width/Height      : 1280/720
    Pixel Format      : 'MJPG' (Motion-JPEG)
    Field             : None
    Bytes per Line    : 0
    Size Image        : 1843789
    Colorspace        : sRGB
    Transfer Function : Rec. 709
    YCbCr/HSV Encoding: ITU-R 601
    Quantization      : Default (maps to Full Range)
    Flags             : 
Crop Capability Video Capture:
    Bounds      : Left 0, Top 0, Width 1280, Height 720
    Default     : Left 0, Top 0, Width 1280, Height 720
    Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 1280, Height 720, Flags: 
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1280, Height 720, Flags: 
Streaming Parameters Video Capture:
    Capabilities     : timeperframe
    Frames per second: 60.000 (60/1)
    Read buffers     : 0

User Controls

                     brightness 0x00980900 (int)    : min=-64 max=64 step=1 default=0 value=0
                       contrast 0x00980901 (int)    : min=0 max=64 step=1 default=32 value=32
                     saturation 0x00980902 (int)    : min=0 max=128 step=1 default=60 value=60
                            hue 0x00980903 (int)    : min=-40 max=40 step=1 default=0 value=0
        white_balance_automatic 0x0098090c (bool)   : default=1 value=1
                          gamma 0x00980910 (int)    : min=72 max=500 step=1 default=100 value=100
                           gain 0x00980913 (int)    : min=0 max=100 step=1 default=0 value=0
           power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=1 value=1 (50 Hz)
                0: Disabled
                1: 50 Hz
                2: 60 Hz
      white_balance_temperature 0x0098091a (int)    : min=2800 max=6500 step=1 default=4600 value=4600 flags=inactive
                      sharpness 0x0098091b (int)    : min=0 max=6 step=1 default=2 value=2
         backlight_compensation 0x0098091c (int)    : min=0 max=2 step=1 default=1 value=1

Camera Controls

                  auto_exposure 0x009a0901 (menu)   : min=0 max=3 default=3 value=3 (Aperture Priority Mode)
                1: Manual Mode
                3: Aperture Priority Mode
         exposure_time_absolute 0x009a0902 (int)    : min=1 max=5000 step=1 default=157 value=157 flags=inactive
     exposure_dynamic_framerate 0x009a0903 (bool)   : default=0 value=1
 
Here is the output from the ROCK64 ffmpeg using a high log level

ffmpeg -loglevel 99 -report -y -f v4l2 -vcodec mjpeg -s 1280x720 -i /dev/video0 -frames:v 1 -f singlejpeg ./www/static/frame.mpeg
Code:
ffmpeg started on 2022-06-07 at 13:54:32
Report written to "ffmpeg-20220607-135432.log"
Log level: 99
Command line:
ffmpeg -loglevel 99 -report -y -f v4l2 -vcodec mjpeg -s 1280x720 -i /dev/video0 -frames:v 1 -f singlejpeg ./www/static/frame.mpeg
ffmpeg version 4.4.2 Copyright (c) 2000-2021 the FFmpeg developers
  built with FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe)
  configuration: --prefix=/usr/local --mandir=/usr/local/man --datadir=/usr/local/share/ffmpeg --pkgconfigdir=/usr/local/libdata/pkgconfig --disable-static --disable-libcelt --enable-shared --enable-pic --enable-gpl --enable-avresample --cc=cc --cxx=c++ --disable-alsa --disable-libopencore-amrnb --disable-libopencore-amrwb --enable-libaom --disable-libaribb24 --enable-asm --enable-libass --disable-libbs2b --disable-libcaca --disable-libcdio --disable-libcodec2 --enable-libdav1d --disable-libdavs2 --disable-libdc1394 --disable-debug --enable-htmlpages --enable-libdrm --disable-libfdk-aac --disable-libflite --enable-fontconfig --enable-libfreetype --enable-frei0r --disable-libfribidi --disable-gcrypt --disable-libglslang --disable-libgme --enable-gmp --enable-gnutls --enable-version3 --disable-libgsm --enable-iconv --disable-libilbc --disable-libjack --disable-libklvanc --disable-libkvazaar --disable-ladspa --enable-libmp3lame --disable-liblensfun --disable-libbluray --disable-librsvg --disable-librtmp --enabl  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'v4l2'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'mjpeg'.
Reading option '-s' ... matched as option 's' (set frame size (WxH or abbreviation)) with argument '1280x720'.
Reading option '-i' ... matched as input url with argument '/dev/video0'.
Reading option '-frames:v' ... matched as option 'frames' (set the number of frames to output) with argument '1'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'singlejpeg'.
Reading option './www/static/frame.mpeg' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument 99.
Applying option report (generate a report) with argument 1.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url /dev/video0.
Applying option f (force format) with argument v4l2.
Applying option vcodec (force video codec ('copy' to copy stream)) with argument mjpeg.
Applying option s (set frame size (WxH or abbreviation)) with argument 1280x720.
Successfully parsed a group of options.
Opening an input file: /dev/video0.
[video4linux2,v4l2 @ 0x45a63000] fd:4 capabilities:84a00001
[video4linux2,v4l2 @ 0x45a63000] Current input_channel: 0, input_name: Camera 1, input_std: 0
[mjpeg @ 0x45a12f00] marker=d8 avail_size_in_buf=64750
[mjpeg @ 0x45a12f00] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a12f00] marker=c0 avail_size_in_buf=64748
[mjpeg @ 0x45a12f00] Changing bps from 0 to 8
[mjpeg @ 0x45a12f00] sof0: picture: 1280x720
[mjpeg @ 0x45a12f00] component 0 2:1 id: 0 quant:0
[mjpeg @ 0x45a12f00] component 1 1:1 id: 1 quant:1
[mjpeg @ 0x45a12f00] component 2 1:1 id: 2 quant:1
[mjpeg @ 0x45a12f00] pix fmt id 21111100
[mjpeg @ 0x45a12f00] Format yuvj422p chosen by get_format().
[mjpeg @ 0x45a12f00] marker parser used 17 bytes (136 bits)
[mjpeg @ 0x45a12f00] marker=dd avail_size_in_buf=64729
[mjpeg @ 0x45a12f00] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a12f00] marker=db avail_size_in_buf=64723
[mjpeg @ 0x45a12f00] index=0
[mjpeg @ 0x45a12f00] qscale[0]: 7
[mjpeg @ 0x45a12f00] index=1
[mjpeg @ 0x45a12f00] qscale[1]: 12
[mjpeg @ 0x45a12f00] marker parser used 132 bytes (1056 bits)
[mjpeg @ 0x45a12f00] marker=c4 avail_size_in_buf=64589
[mjpeg @ 0x45a12f00] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a12f00] escaping removed 105 bytes
[mjpeg @ 0x45a12f00] marker=da avail_size_in_buf=64169
[mjpeg @ 0x45a12f00] marker parser used 64064 bytes (512512 bits)
[mjpeg @ 0x45a12f00] marker=d9 avail_size_in_buf=5
[mjpeg @ 0x45a12f00] decode frame unused 5 bytes
[video4linux2,v4l2 @ 0x45a63000] All info found
[video4linux2,v4l2 @ 0x45a63000] stream 0: start_time: 1.65464e+09 duration: NOPTS
[video4linux2,v4l2 @ 0x45a63000] format: start_time: 1.65464e+09 duration: NOPTS (estimate from bit rate) bitrate=0 kb/s
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 1654635272.210750, bitrate: N/A
  Stream #0:0, 1, 1/1000000: Video: mjpeg (Baseline), 1 reference frame, yuvj422p(pc, bt470bg/unknown/unknown, center), 1280x720, 0/1, 60 fps, 60 tbr, 1000k tbn, 1000k tbc
Successfully opened the file.
Parsing a group of options: output url ./www/static/frame.mpeg.
Applying option frames:v (set the number of frames to output) with argument 1.
Applying option f (force format) with argument singlejpeg.
Successfully parsed a group of options.
Opening an output file: ./www/static/frame.mpeg.
[file @ 0x45a1d080] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[mjpeg @ 0x45a13400] marker=d8 avail_size_in_buf=64750
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=c0 avail_size_in_buf=64748
[mjpeg @ 0x45a13400] sof0: picture: 1280x720
[mjpeg @ 0x45a13400] component 0 2:1 id: 0 quant:0
[mjpeg @ 0x45a13400] component 1 1:1 id: 1 quant:1
[mjpeg @ 0x45a13400] component 2 1:1 id: 2 quant:1
[mjpeg @ 0x45a13400] pix fmt id 21111100
[mjpeg @ 0x45a13400] Format yuvj422p chosen by get_format().
[mjpeg @ 0x45a13400] marker parser used 17 bytes (136 bits)
[mjpeg @ 0x45a13400] marker=dd avail_size_in_buf=64729
[mjpeg @ 0x45a13400] restart interval: 80
[mjpeg @ 0x45a13400] marker parser used 4 bytes (32 bits)
[mjpeg @ 0x45a13400] marker=db avail_size_in_buf=64723
[mjpeg @ 0x45a13400] index=0
[mjpeg @ 0x45a13400] qscale[0]: 7
[mjpeg @ 0x45a13400] index=1
[mjpeg @ 0x45a13400] qscale[1]: 12
[mjpeg @ 0x45a13400] marker parser used 132 bytes (1056 bits)
[mjpeg @ 0x45a13400] marker=c4 avail_size_in_buf=64589
[mjpeg @ 0x45a13400] class=0 index=0 nb_codes=12
[mjpeg @ 0x45a13400] class=0 index=1 nb_codes=12
[mjpeg @ 0x45a13400] class=1 index=0 nb_codes=162
[mjpeg @ 0x45a13400] class=1 index=1 nb_codes=162
[mjpeg @ 0x45a13400] marker parser used 418 bytes (3344 bits)
[mjpeg @ 0x45a13400] escaping removed 105 bytes
[mjpeg @ 0x45a13400] marker=da avail_size_in_buf=64169
[mjpeg @ 0x45a13400] component: 0
[mjpeg @ 0x45a13400] component: 1
[mjpeg @ 0x45a13400] component: 2
[mjpeg @ 0x45a13400] mjpeg_decode_dc: bad vlc: 0:0 (0x45a89250)
[mjpeg @ 0x45a13400] error dc
[mjpeg @ 0x45a13400] error y=0 x=70
[mjpeg @ 0x45a13400] marker parser used 989 bytes (7906 bits)
[mjpeg @ 0x45a13400] marker=d0 avail_size_in_buf=63178
[mjpeg @ 0x45a13400] restart marker: 0
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d1 avail_size_in_buf=62201
[mjpeg @ 0x45a13400] restart marker: 1
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d2 avail_size_in_buf=61342
[mjpeg @ 0x45a13400] restart marker: 2
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d4 avail_size_in_buf=59534
[mjpeg @ 0x45a13400] restart marker: 4
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d5 avail_size_in_buf=58574
[mjpeg @ 0x45a13400] restart marker: 5
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d6 avail_size_in_buf=57549
[mjpeg @ 0x45a13400] restart marker: 6
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d7 avail_size_in_buf=56558
[mjpeg @ 0x45a13400] restart marker: 7
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d0 avail_size_in_buf=55576
[mjpeg @ 0x45a13400] restart marker: 0
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d1 avail_size_in_buf=54690
[mjpeg @ 0x45a13400] restart marker: 1
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d3 avail_size_in_buf=52892
[mjpeg @ 0x45a13400] restart marker: 3
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d4 avail_size_in_buf=51935
[mjpeg @ 0x45a13400] restart marker: 4
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d5 avail_size_in_buf=51000
[mjpeg @ 0x45a13400] restart marker: 5
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d6 avail_size_in_buf=50063
[mjpeg @ 0x45a13400] restart marker: 6
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d7 avail_size_in_buf=49102
[mjpeg @ 0x45a13400] restart marker: 7
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d0 avail_size_in_buf=48265
[mjpeg @ 0x45a13400] restart marker: 0
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d2 avail_size_in_buf=46589
[mjpeg @ 0x45a13400] restart marker: 2
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d3 avail_size_in_buf=45686
[mjpeg @ 0x45a13400] restart marker: 3
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d4 avail_size_in_buf=44849
[mjpeg @ 0x45a13400] restart marker: 4
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d5 avail_size_in_buf=43993
[mjpeg @ 0x45a13400] restart marker: 5
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d6 avail_size_in_buf=43107
[mjpeg @ 0x45a13400] restart marker: 6
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d7 avail_size_in_buf=42309
[mjpeg @ 0x45a13400] restart marker: 7
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d0 avail_size_in_buf=41490
[mjpeg @ 0x45a13400] restart marker: 0
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d1 avail_size_in_buf=40754
[mjpeg @ 0x45a13400] restart marker: 1
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d3 avail_size_in_buf=39270
[mjpeg @ 0x45a13400] restart marker: 3
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d4 avail_size_in_buf=38493
[mjpeg @ 0x45a13400] restart marker: 4
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d5 avail_size_in_buf=37708
[mjpeg @ 0x45a13400] restart marker: 5
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d6 avail_size_in_buf=36893
[mjpeg @ 0x45a13400] restart marker: 6
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d7 avail_size_in_buf=36276
[mjpeg @ 0x45a13400] restart marker: 7
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d0 avail_size_in_buf=35560
[mjpeg @ 0x45a13400] restart marker: 0
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d2 avail_size_in_buf=34149
[mjpeg @ 0x45a13400] restart marker: 2
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d3 avail_size_in_buf=33360
[mjpeg @ 0x45a13400] restart marker: 3
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d4 avail_size_in_buf=32571
[mjpeg @ 0x45a13400] restart marker: 4
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d5 avail_size_in_buf=31820
[mjpeg @ 0x45a13400] restart marker: 5
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d6 avail_size_in_buf=30982
[mjpeg @ 0x45a13400] restart marker: 6
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d7 avail_size_in_buf=30270
[mjpeg @ 0x45a13400] restart marker: 7
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d1 avail_size_in_buf=28724
[mjpeg @ 0x45a13400] restart marker: 1
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d2 avail_size_in_buf=27975
[mjpeg @ 0x45a13400] restart marker: 2
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d3 avail_size_in_buf=27231
[mjpeg @ 0x45a13400] restart marker: 3
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d4 avail_size_in_buf=26503
[mjpeg @ 0x45a13400] restart marker: 4
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d5 avail_size_in_buf=25747
[mjpeg @ 0x45a13400] restart marker: 5
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d6 avail_size_in_buf=25046
[mjpeg @ 0x45a13400] restart marker: 6
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d7 avail_size_in_buf=24316
[mjpeg @ 0x45a13400] restart marker: 7
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d0 avail_size_in_buf=23682
[mjpeg @ 0x45a13400] restart marker: 0
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d1 avail_size_in_buf=22896
[mjpeg @ 0x45a13400] restart marker: 1
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d2 avail_size_in_buf=22202
[mjpeg @ 0x45a13400] restart marker: 2
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d3 avail_size_in_buf=21446
[mjpeg @ 0x45a13400] restart marker: 3
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d4 avail_size_in_buf=20646
[mjpeg @ 0x45a13400] restart marker: 4
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d5 avail_size_in_buf=19922
[mjpeg @ 0x45a13400] restart marker: 5
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d6 avail_size_in_buf=19072
[mjpeg @ 0x45a13400] restart marker: 6
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d7 avail_size_in_buf=18306
[mjpeg @ 0x45a13400] restart marker: 7
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d1 avail_size_in_buf=16649
[mjpeg @ 0x45a13400] restart marker: 1
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d2 avail_size_in_buf=15767
[mjpeg @ 0x45a13400] restart marker: 2
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d3 avail_size_in_buf=14939
[mjpeg @ 0x45a13400] restart marker: 3
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d4 avail_size_in_buf=14202
[mjpeg @ 0x45a13400] restart marker: 4
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d5 avail_size_in_buf=13435
[mjpeg @ 0x45a13400] restart marker: 5
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d6 avail_size_in_buf=12796
[mjpeg @ 0x45a13400] restart marker: 6
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d0 avail_size_in_buf=11401
[mjpeg @ 0x45a13400] restart marker: 0
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d1 avail_size_in_buf=10819
[mjpeg @ 0x45a13400] restart marker: 1
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d2 avail_size_in_buf=10353
[mjpeg @ 0x45a13400] restart marker: 2
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d3 avail_size_in_buf=9984
[mjpeg @ 0x45a13400] restart marker: 3
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d4 avail_size_in_buf=9491
[mjpeg @ 0x45a13400] restart marker: 4
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d5 avail_size_in_buf=8974
[mjpeg @ 0x45a13400] restart marker: 5
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d6 avail_size_in_buf=8519
[mjpeg @ 0x45a13400] restart marker: 6
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d7 avail_size_in_buf=8027
[mjpeg @ 0x45a13400] restart marker: 7
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d0 avail_size_in_buf=7533
[mjpeg @ 0x45a13400] restart marker: 0
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d1 avail_size_in_buf=7064
[mjpeg @ 0x45a13400] restart marker: 1
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d2 avail_size_in_buf=6650
[mjpeg @ 0x45a13400] restart marker: 2
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d3 avail_size_in_buf=6262
[mjpeg @ 0x45a13400] restart marker: 3
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d4 avail_size_in_buf=5885
[mjpeg @ 0x45a13400] restart marker: 4
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d5 avail_size_in_buf=5523
[mjpeg @ 0x45a13400] restart marker: 5
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d6 avail_size_in_buf=5152
[mjpeg @ 0x45a13400] restart marker: 6
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d7 avail_size_in_buf=4774
[mjpeg @ 0x45a13400] restart marker: 7
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d0 avail_size_in_buf=4474
[mjpeg @ 0x45a13400] restart marker: 0
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d1 avail_size_in_buf=4047
[mjpeg @ 0x45a13400] restart marker: 1
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d2 avail_size_in_buf=3506
[mjpeg @ 0x45a13400] restart marker: 2
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d3 avail_size_in_buf=3023
[mjpeg @ 0x45a13400] restart marker: 3
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d4 avail_size_in_buf=2545
[mjpeg @ 0x45a13400] restart marker: 4
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d5 avail_size_in_buf=2098
[mjpeg @ 0x45a13400] restart marker: 5
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d7 avail_size_in_buf=1229
[mjpeg @ 0x45a13400] restart marker: 7
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d0 avail_size_in_buf=563
[mjpeg @ 0x45a13400] restart marker: 0
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=d9 avail_size_in_buf=5
[mjpeg @ 0x45a13400] decode frame unused 5 bytes
detected 4 logical cores
[graph 0 input from stream 0:0 @ 0x45a1f240] Setting 'video_size' to value '1280x720'
[graph 0 input from stream 0:0 @ 0x45a1f240] Setting 'pix_fmt' to value '13'
[graph 0 input from stream 0:0 @ 0x45a1f240] Setting 'time_base' to value '1/1000000'
[graph 0 input from stream 0:0 @ 0x45a1f240] Setting 'pixel_aspect' to value '0/1'
[graph 0 input from stream 0:0 @ 0x45a1f240] Setting 'frame_rate' to value '60/1'
[graph 0 input from stream 0:0 @ 0x45a1f240] w:1280 h:720 pixfmt:yuvj422p tb:1/1000000 fr:60/1 sar:0/1
[format @ 0x45a1f3c0] Setting 'pix_fmts' to value 'yuvj420p|yuvj422p|yuvj444p'
[AVFilterGraph @ 0x45a108c0] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed
[mjpeg @ 0x45a14300] Forcing thread count to 1 for MJPEG encoding, use -thread_type slice or a constant quantizer if you want to use multiple cpu cores
[mjpeg @ 0x45a14300] intra_quant_bias = 96 inter_quant_bias = 0
Output #0, singlejpeg, to './www/static/frame.mpeg':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0, 0, 1/60: Video: mjpeg, 1 reference frame, yuvj422p(pc, bt470bg/unknown/unknown, progressive, center), 1280x720 (0x0), 0/1, q=2-31, 200 kb/s, 60 fps, 60 tbn
    Metadata:
      encoder         : Lavc58.134.100 mjpeg
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
Clipping frame in rate conversion by 0.000008
frame=    1 fps=0.0 q=4.4 size=       9kB time=00:00:00.01 bitrate=4275.8kbits/s speed=1.19e+03x    
No more output streams to write to, finishing.
frame=    1 fps=0.0 q=4.4 Lsize=       9kB time=00:00:00.01 bitrate=4275.8kbits/s speed=0.172x    
video:9kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
Input file #0 (/dev/video0):
  Input stream #0:0 (video): 1 packets read (64752 bytes); 1 frames decoded; 
  Total: 1 packets (64752 bytes) demuxed
Output file #0 (./www/static/frame.mpeg):
  Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (8908 bytes); 
  Total: 1 packets (8908 bytes) muxed
1 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x45ace000] Statistics: 0 seeks, 1 writeouts
 
I ended up writing a script to run all the same exact commands and pipe their output into files. After that I compared them again and finally found something useful from running the ffmpeg command:
Code:
[
video4linux2,v4l2 @ 0x45a62000] fd:4 capabilities:84a00001
[video4linux2,v4l2 @ 0x45a62000] Current input_channel: 0, input_name: Camera 1, input_std: 0
[video4linux2,v4l2 @ 0x45a62000] interrupted
[video4linux2,v4l2 @ 0x45a62000] stream 0: start_time: NOPTS duration: NOPTS
[video4linux2,v4l2 @ 0x45a62000] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s
[video4linux2,v4l2 @ 0x45a62000] Could not find codec parameters for stream 0 (Video: mjpeg, 1 reference frame, none(bt470bg/unknown/unknown, center), 1280x720, 1/1000000): unspecified pixel format

I noticed that the name of the log file was also strange as it showed the wrong date, which I found strange as I had previously used tzsetup and date to ensure it was accurate. Then it hit me like a ton of bricks.

The SBC doesn't have a RTC(real time clock).

To compensate for the issue I tried to tell it what offset should be using the following command:

ffmpeg -report -loglevel 99 -f v4l2 -vcodec mjpeg -s 1280x720 -i /dev/video0 -output_ts_offset 0 -frames:v 1 -f singlejpeg ./frame.jpeg

It still produces some errors, but produces a totally usable jpeg frame.

I'm attaching the log of the new command here just in case so someone might hit on a keyword from it if they have the same issue:
Code:
ffmpeg started on 2022-06-08 at 15:17:14
Report written to "ffmpeg-20220608-151714.log"
Log level: 99
Command line:
ffmpeg -report -loglevel 99 -f v4l2 -vcodec mjpeg -s 1280x720 -i /dev/video0 -output_ts_offset 0 -frames:v 1 -f singlejpeg ./frame.jpeg
ffmpeg version 4.4.2 Copyright (c) 2000-2021 the FFmpeg developers
  built with FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe)
  configuration: --prefix=/usr/local --mandir=/usr/local/man --datadir=/usr/local/share/ffmpeg --pkgconfigdir=/usr/local/libdata/pkgconfig --disable-static --disable-libcelt --enable-shared --enable-pic --enable-gpl --enable-avresample --cc=cc --cxx=c++ --disable-alsa --disable-libopencore-amrnb --disable-libopencore-amrwb --enable-libaom --disable-libaribb24 --enable-asm --enable-libass --disable-libbs2b --disable-libcaca --disable-libcdio --disable-libcodec2 --enable-libdav1d --disable-libdavs2 --disable-libdc1394 --disable-debug --enable-htmlpages --enable-libdrm --disable-libfdk-aac --disable-libflite --enable-fontconfig --enable-libfreetype --enable-frei0r --disable-libfribidi --disable-gcrypt --disable-libglslang --disable-libgme --enable-gmp --enable-gnutls --enable-version3 --disable-libgsm --enable-iconv --disable-libilbc --disable-libjack --disable-libklvanc --disable-libkvazaar --disable-ladspa --enable-libmp3lame --disable-liblensfun --disable-libbluray --disable-librsvg --disable-librtmp --enabl  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Splitting the commandline.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'v4l2'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'mjpeg'.
Reading option '-s' ... matched as option 's' (set frame size (WxH or abbreviation)) with argument '1280x720'.
Reading option '-i' ... matched as input url with argument '/dev/video0'.
Reading option '-output_ts_offset' ... matched as AVOption 'output_ts_offset' with argument '0'.
Reading option '-frames:v' ... matched as option 'frames' (set the number of frames to output) with argument '1'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'singlejpeg'.
Reading option './frame.jpeg' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Applying option loglevel (set logging level) with argument 99.
Successfully parsed a group of options.
Parsing a group of options: input url /dev/video0.
Applying option f (force format) with argument v4l2.
Applying option vcodec (force video codec ('copy' to copy stream)) with argument mjpeg.
Applying option s (set frame size (WxH or abbreviation)) with argument 1280x720.
Successfully parsed a group of options.
Opening an input file: /dev/video0.
[video4linux2,v4l2 @ 0x45a63000] fd:4 capabilities:84a00001
[video4linux2,v4l2 @ 0x45a63000] Current input_channel: 0, input_name: Camera 1, input_std: 0
[mjpeg @ 0x45a12f00] marker=d8 avail_size_in_buf=121174
[mjpeg @ 0x45a12f00] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a12f00] marker=c0 avail_size_in_buf=121172
[mjpeg @ 0x45a12f00] Changing bps from 0 to 8
[mjpeg @ 0x45a12f00] sof0: picture: 1280x720
[mjpeg @ 0x45a12f00] component 0 2:1 id: 0 quant:0
[mjpeg @ 0x45a12f00] component 1 1:1 id: 1 quant:1
[mjpeg @ 0x45a12f00] component 2 1:1 id: 2 quant:1
[mjpeg @ 0x45a12f00] pix fmt id 21111100
[mjpeg @ 0x45a12f00] Format yuvj422p chosen by get_format().
[mjpeg @ 0x45a12f00] marker parser used 17 bytes (136 bits)
[mjpeg @ 0x45a12f00] marker=dd avail_size_in_buf=121153
[mjpeg @ 0x45a12f00] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a12f00] marker=db avail_size_in_buf=121147
[mjpeg @ 0x45a12f00] index=0
[mjpeg @ 0x45a12f00] qscale[0]: 3
[mjpeg @ 0x45a12f00] index=1
[mjpeg @ 0x45a12f00] qscale[1]: 5
[mjpeg @ 0x45a12f00] marker parser used 132 bytes (1056 bits)
[mjpeg @ 0x45a12f00] marker=c4 avail_size_in_buf=121013
[mjpeg @ 0x45a12f00] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a12f00] escaping removed 206 bytes
[mjpeg @ 0x45a12f00] marker=da avail_size_in_buf=120593
[mjpeg @ 0x45a12f00] marker parser used 120387 bytes (963096 bits)
[mjpeg @ 0x45a12f00] marker=d9 avail_size_in_buf=1
[mjpeg @ 0x45a12f00] decode frame unused 1 bytes
[video4linux2,v4l2 @ 0x45a63000] All info found
[video4linux2,v4l2 @ 0x45a63000] stream 0: start_time: 1.65473e+09 duration: NOPTS
[video4linux2,v4l2 @ 0x45a63000] format: start_time: 1.65473e+09 duration: NOPTS (estimate from bit rate) bitrate=0 kb/s
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 1654726635.039658, bitrate: N/A
  Stream #0:0, 1, 1/1000000: Video: mjpeg (Baseline), 1 reference frame, yuvj422p(pc, bt470bg/unknown/unknown, center), 1280x720, 0/1, 60 fps, 60 tbr, 1000k tbn, 1000k tbc
Successfully opened the file.
Parsing a group of options: output url ./frame.jpeg.
Applying option frames:v (set the number of frames to output) with argument 1.
Applying option f (force format) with argument singlejpeg.
Successfully parsed a group of options.
Opening an output file: ./frame.jpeg.
[file @ 0x45a2f1c0] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[mjpeg @ 0x45a13400] marker=d8 avail_size_in_buf=121174
[mjpeg @ 0x45a13400] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x45a13400] marker=c0 avail_size_in_buf=121172
[mjpeg @ 0x45a13400] sof0: picture: 1280x720
[mjpeg @ 0x45a13400] component 0 2:1 id: 0 quant:0
[mjpeg @ 0x45a13400] component 1 1:1 id: 1 quant:1
[mjpeg @ 0x45a13400] component 2 1:1 id: 2 quant:1
[mjpeg @ 0x45a13400] pix fmt id 21111100
[mjpeg @ 0x45a13400] Format yuvj422p chosen by get_format().
[mjpeg @ 0x45a13400] marker parser used 17 bytes (136 bits)
[mjpeg @ 0x45a13400] marker=dd avail_size_in_buf=121153
[mjpeg @ 0x45a13400] restart interval: 80
[mjpeg @ 0x45a13400] marker parser used 4 bytes (32 bits)
[mjpeg @ 0x45a13400] marker=db avail_size_in_buf=121147
[mjpeg @ 0x45a13400] index=0
[mjpeg @ 0x45a13400] qscale[0]: 3
[mjpeg @ 0x45a13400] index=1
[mjpeg @ 0x45a13400] qscale[1]: 5
[mjpeg @ 0x45a13400] marker parser used 132 bytes (1056 bits)
[mjpeg @ 0x45a13400] marker=c4 avail_size_in_buf=121013
[mjpeg @ 0x45a13400] class=0 index=0 nb_codes=12
[mjpeg @ 0x45a13400] class=0 index=1 nb_codes=12
[mjpeg @ 0x45a13400] class=1 index=0 nb_codes=162
[mjpeg @ 0x45a13400] class=1 index=1 nb_codes=162
[mjpeg @ 0x45a13400] marker parser used 418 bytes (3344 bits)
[mjpeg @ 0x45a13400] escaping removed 206 bytes
[mjpeg @ 0x45a13400] marker=da avail_size_in_buf=120593
[mjpeg @ 0x45a13400] component: 0
[mjpeg @ 0x45a13400] component: 1
[mjpeg @ 0x45a13400] component: 2
[mjpeg @ 0x45a13400] marker parser used 120386 bytes (963085 bits)
[mjpeg @ 0x45a13400] marker=d9 avail_size_in_buf=1
[mjpeg @ 0x45a13400] decode frame unused 1 bytes
detected 4 logical cores
[graph 0 input from stream 0:0 @ 0x45a1e240] Setting 'video_size' to value '1280x720'
[graph 0 input from stream 0:0 @ 0x45a1e240] Setting 'pix_fmt' to value '13'
[graph 0 input from stream 0:0 @ 0x45a1e240] Setting 'time_base' to value '1/1000000'
[graph 0 input from stream 0:0 @ 0x45a1e240] Setting 'pixel_aspect' to value '0/1'
[graph 0 input from stream 0:0 @ 0x45a1e240] Setting 'frame_rate' to value '60/1'
[graph 0 input from stream 0:0 @ 0x45a1e240] w:1280 h:720 pixfmt:yuvj422p tb:1/1000000 fr:60/1 sar:0/1
[format @ 0x45a1e3c0] Setting 'pix_fmts' to value 'yuvj420p|yuvj422p|yuvj444p'
[AVFilterGraph @ 0x45a108c0] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed
[mjpeg @ 0x45a14300] Forcing thread count to 1 for MJPEG encoding, use -thread_type slice or a constant quantizer if you want to use multiple cpu cores
[mjpeg @ 0x45a14300] intra_quant_bias = 96 inter_quant_bias = 0
Output #0, singlejpeg, to './frame.jpeg':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0, 0, 1/60: Video: mjpeg, 1 reference frame, yuvj422p(pc, bt470bg/unknown/unknown, progressive, center), 1280x720 (0x0), 0/1, q=2-31, 200 kb/s, 60 fps, 60 tbn
    Metadata:
      encoder         : Lavc58.134.100 mjpeg
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
Clipping frame in rate conversion by 0.000008
frame=    1 fps=0.0 q=5.1 size=      71kB time=00:00:00.01 bitrate=35117.5kbits/s speed=1.67e+03x  
No more output streams to write to, finishing.
frame=    1 fps=0.0 q=5.1 Lsize=      71kB time=00:00:00.01 bitrate=35117.5kbits/s speed=0.168x  
video:71kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
Input file #0 (/dev/video0):
  Input stream #0:0 (video): 1 packets read (121176 bytes); 1 frames decoded;
  Total: 1 packets (121176 bytes) demuxed
Output file #0 (./frame.jpeg):
  Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (73163 bytes);
  Total: 1 packets (73163 bytes) muxed
1 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x45ace000] Statistics: 0 seeks, 1 writeouts
 
Ah, I'll have to check if I have any extra batteries.

I have some cells for the RTC on Rock3a boards but didn't even think about my rock64 setup not having one. I should have noticed it earlier.

EDIT:
Just checked again, no RTC on the rk3328 that I can see. I guess that one of the IC on the board has one but I don't think you can use it with the 2.0 version of the Rock64 so I'm out of luck on that front.
 
Back
Top