Qengineering / BananaPi-M2-Zero-OV5640

Banana Pi M2 zero with OV5640, WiringPi and OpenCV image.
https://qengineering.eu/deep-learning-with-raspberry-pi-and-alternatives.html
BSD 3-Clause "New" or "Revised" License
36 stars 5 forks source link

Can't work in chenged resolution #5

Open jeonhaeng opened 1 year ago

jeonhaeng commented 1 year ago

Default status

Device topology

* work well --> CamLive.py with 640480 ** work well --> gst-launch-1.0 v4l2src device=/dev/video1 ! video/x-raw, width=640, height=480, framerate=30/1 ! videoconvert ! autovideosink

I changed set with

sudo media-ctl --device /dev/media1 --set-v4l2 '"ov5640 2-003c":0[fmt:YUYV8_2X8/1280x720@1/15]'

do not work --> CamLive.py work well --> gst-launch-1.0 v4l2src device=/dev/video1 ! video/x-raw, width=1280, height=720, framerate=15/1 ! videoconvert ! autovideosink

how can I change resolution without error in CamLive.py ?

Qengineering commented 1 year ago

Where can I find CamLive.py?

jeonhaeng commented 1 year ago

After I set with BananaPi-M2-Zero-OV5640 img uploading, I can find the home/pi/software/python/LiveCam directory, and there's a sample file called LiveCamp.py. I used it for test. I work in 680,480 mode but didn't work in 1290,720. I use this opencv code to change resolution in LiveCam.py

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

The result is the same if I excute before run it:

sudo media-ctl --device /dev/media1 --set-v4l2 '"ov5640 2-003c":0[fmt:YUYV8_2X8/1280x720@1/15]'

Qengineering commented 1 year ago

I'm very sorry, but do we have the same OS?

pi@banana:~$ cat /etc/os-release

PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

pi@banana:~$ media-ctl --print-topology

Media controller API version 5.10.43

Media device information
------------------------
driver          cedrus
model           cedrus
serial          
bus info        platform:cedrus
hw revision     0x0
driver version  5.10.43

Device topology
- entity 1: cedrus-source (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
    pad0: Source
        -> "cedrus-proc":0 [ENABLED,IMMUTABLE]

- entity 3: cedrus-proc (2 pads, 2 links)
            type Node subtype Unknown flags 0
    pad0: Sink
        <- "cedrus-source":0 [ENABLED,IMMUTABLE]
    pad1: Source
        -> "cedrus-sink":0 [ENABLED,IMMUTABLE]

- entity 6: cedrus-sink (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
    pad0: Sink
        <- "cedrus-proc":1 [ENABLED,IMMUTABLE]
jeonhaeng commented 1 year ago

I think it is same. I didn't chane anything.. Refer to this my capture list, please

pi@banana:~$ cat /etc/os-release

PRETTY_NAME="Debian GNU/Linux 10 (buster)" NAME="Debian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"

pi@banana:~$ media-ctl --print-topology Media controller API version 5.10.43

Media device information

driver cedrus model cedrus serial bus info platform:cedrus hw revision 0x0 driver version 5.10.43

Device topology

Qengineering commented 1 year ago

@jeonhaeng,

I've tested the software and have the same results (not surprising). Both the C++ and Python (LiveCam) app give the same errors. The limited amount of memory (500 MB) seems to be the problem. I'm afraid there is not much we can do about it. Luckily, streaming is still possible with 1280x720. However, even 1280x960 is a bridge too far to stream.

jeonhaeng commented 1 year ago

Then only two mode streaming is possib;e and can't change resolotuion setting in python?

Qengineering commented 1 year ago

Indeed, correct.